20220506.html

Report generated on 06-May-2022 at 17:46:22 by pytest-html v1.21.1

Environment

JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home
Packages {'pytest': '6.2.4', 'py': '1.10.0', 'pluggy': '0.13.1'}
Platform Darwin-19.4.0-x86_64-i386-64bit
Plugins {'Faker': '8.10.0', 'assume': '2.4.3', 'sugar': '0.9.4', 'dependency': '0.5.1', 'html': '1.21.1', 'rerunfailures': '10.1', 'repeat': '0.9.1', 'metadata': '1.8.0'}
Python 3.7.3

Summary

69 tests ran in 1374.63 seconds.

64 passed, 54 skipped, 5 failed, 0 errors, 0 expected failures, 0 unexpected passes, 7 rerun

Results

Result 用例名称 Test Duration Links
Failed WEB-后台注册机构客户 TestCase/01_web/test_01_admin_register.py::TestRegister::test_002 30.92
screenshot
self = <test_01_admin_register.TestRegister object at 0x10e861160>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>

@pytest.mark.dependency(name="register", depends=["code_login"])
# @pytest.mark.skip(reason="注册产生数据")
def test_002(self, drivers):
"""WEB-后台注册机构客户"""
global REG_ACCOUNT
AdminLogin(drivers).admin_lodin()
register = RegisterPage(drivers)
register.travel_dep_add()
register.customer_type_tmc()
company_name = register.full_customer_name()
register.member_id()
> register.customer_info()

TestCase/01_web/test_01_admin_register.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
PageObject/WebObject/web_registerpage.py:115: in customer_info
self.customer_address()
PageObject/WebObject/web_registerpage.py:97: in customer_address
self.is_click(self.num_replace(register["省"], 31))
page/webpage.py:82: in is_click
self.find_element(locator).click()
page/webpage.py:51: in find_element
EC.presence_of_element_located(args)), locator)
page/webpage.py:44: in element_locator
return func(cm.LOCATE_MODE[name], value)
page/webpage.py:51: in <lambda>
EC.presence_of_element_located(args)), locator)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.support.wait.WebDriverWait (session="46b458b22cd2b8955299e19ac233f453")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x10e8099e8>, message = ''

def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None

end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:

../../venv/lib/python3.7/site-packages/selenium/webdriver/support/wait.py:80: TimeoutException
----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:24:25,584 [webpage.py:36] 打开网页:https://staging-tehang-system.teyixing.com/login INFO 2022-05-06 17:24:25,584 [web_adminloginpage.py:13] 输入账号 INFO 2022-05-06 17:24:25,584 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO 2022-05-06 17:24:25,718 [webpage.py:78] 输入文本:15950582102 INFO 2022-05-06 17:24:25,719 [web_adminloginpage.py:18] 输入密码 INFO 2022-05-06 17:24:25,719 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:24:25,837 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:24:25,837 [web_adminloginpage.py:23] 点击登录 INFO 2022-05-06 17:24:25,838 [webpage.py:48] 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:24:26,377 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:24:26,378 [web_adminloginpage.py:28] 获取标签栏文字 INFO 2022-05-06 17:24:26,378 [webpage.py:48] 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO 2022-05-06 17:24:26,583 [webpage.py:89] 获取文本:呼叫接入 INFO 2022-05-06 17:24:26,584 [adminlogin.py:27] 后台账号:15950582102登录成功 INFO 2022-05-06 17:24:26,584 [web_registerpage.py:18] 点击 运营管理 INFO 2022-05-06 17:24:26,584 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '运营管理')]") INFO 2022-05-06 17:24:27,105 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '运营管理')]") INFO 2022-05-06 17:24:27,105 [web_registerpage.py:23] 点击 商旅事业部--机构客户 INFO 2022-05-06 17:24:27,106 [webpage.py:48] 查找元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO 2022-05-06 17:24:28,972 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO 2022-05-06 17:24:28,972 [web_registerpage.py:28] 点击 新增按钮 INFO 2022-05-06 17:24:28,972 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO 2022-05-06 17:24:29,797 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO 2022-05-06 17:24:29,798 [web_registerpage.py:39] 选中客户类型--tmc INFO 2022-05-06 17:24:29,798 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpType']") INFO 2022-05-06 17:24:30,374 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpType']") INFO 2022-05-06 17:24:30,374 [webpage.py:48] 查找元素:('xpath', "//*[contains(text(),'TMC')]") INFO 2022-05-06 17:24:30,940 [webpage.py:84] 点击元素:('xpath', "//*[contains(text(),'TMC')]") INFO 2022-05-06 17:24:30,940 [web_registerpage.py:51] 输入客户全称 INFO 2022-05-06 17:24:30,940 [webpage.py:48] 查找元素:('xpath', "//input[@formcontrolname='nameCn']") INFO 2022-05-06 17:24:31,047 [webpage.py:78] 输入文本:彩虹信息有限公司 INFO 2022-05-06 17:24:31,060 [web_registerpage.py:64] 输入会员号 INFO 2022-05-06 17:24:31,060 [webpage.py:48] 查找元素:('xpath', "//input[@formcontrolname='code']") INFO 2022-05-06 17:24:31,154 [webpage.py:78] 输入文本:TH3341357121 INFO 2022-05-06 17:24:31,164 [web_registerpage.py:110] 填写客户信息 INFO 2022-05-06 17:24:31,164 [web_registerpage.py:71] 选择客户规模 INFO 2022-05-06 17:24:31,165 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpSize']") INFO 2022-05-06 17:24:31,722 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpSize']") INFO 2022-05-06 17:24:31,722 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:24:32,277 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:24:32,277 [web_registerpage.py:77] 选择业务状态 INFO 2022-05-06 17:24:32,278 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO 2022-05-06 17:24:32,856 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO 2022-05-06 17:24:32,856 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:33,412 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:33,413 [web_registerpage.py:83] 选择所属行业 INFO 2022-05-06 17:24:33,413 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO 2022-05-06 17:24:33,986 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO 2022-05-06 17:24:33,987 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:34,537 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:34,537 [web_registerpage.py:89] 选择信用等级 INFO 2022-05-06 17:24:34,537 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO 2022-05-06 17:24:35,109 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO 2022-05-06 17:24:35,109 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:35,659 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:35,660 [web_registerpage.py:95] 选择省-市-区 INFO 2022-05-06 17:24:35,660 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='location']") INFO 2022-05-06 17:24:36,257 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='location']") INFO 2022-05-06 17:24:36,257 [webpage.py:48] 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[5]') INFO 2022-05-06 17:24:36,822 [webpage.py:84] 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[5]') INFO 2022-05-06 17:24:36,822 [webpage.py:48] 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[2]/li[1]') INFO 2022-05-06 17:24:37,378 [webpage.py:84] 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[2]/li[1]') INFO 2022-05-06 17:24:37,378 [webpage.py:48] 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[3]/li[2]') INFO 2022-05-06 17:24:37,930 [webpage.py:84] 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[3]/li[2]') INFO 2022-05-06 17:24:37,930 [web_registerpage.py:103] 输入具体地址 INFO 2022-05-06 17:24:37,931 [webpage.py:48] 查找元素:('xpath', "//input[@formcontrolname='address']") INFO 2022-05-06 17:24:38,037 [webpage.py:78] 输入文本:东莞街R座 INFO 2022-05-06 17:24:38,052 [web_registerpage.py:147] 填写服务信息 INFO 2022-05-06 17:24:38,052 [web_registerpage.py:119] 选择销售经理 INFO 2022-05-06 17:24:38,052 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO 2022-05-06 17:24:38,623 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO 2022-05-06 17:24:38,624 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[13]') INFO 2022-05-06 17:24:39,194 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[13]') INFO 2022-05-06 17:24:39,194 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO 2022-05-06 17:24:39,756 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO 2022-05-06 17:24:39,757 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[15]') INFO 2022-05-06 17:24:40,318 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[15]') INFO 2022-05-06 17:24:40,318 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO 2022-05-06 17:24:40,835 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO 2022-05-06 17:24:40,835 [web_registerpage.py:126] 选择客服经理 INFO 2022-05-06 17:24:40,835 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO 2022-05-06 17:24:41,409 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO 2022-05-06 17:24:41,410 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO 2022-05-06 17:24:41,973 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO 2022-05-06 17:24:41,974 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO 2022-05-06 17:24:42,538 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO 2022-05-06 17:24:42,538 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:43,098 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:43,099 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO 2022-05-06 17:24:43,618 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO 2022-05-06 17:24:43,619 [web_registerpage.py:133] 选择结算经理 INFO 2022-05-06 17:24:43,619 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO 2022-05-06 17:24:44,195 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO 2022-05-06 17:24:44,196 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:44,775 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:44,775 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO 2022-05-06 17:24:45,341 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO 2022-05-06 17:24:45,342 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:45,903 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:45,903 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO 2022-05-06 17:24:46,418 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO 2022-05-06 17:24:46,418 [web_registerpage.py:140] 选择维护经理 INFO 2022-05-06 17:24:46,418 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO 2022-05-06 17:24:46,996 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO 2022-05-06 17:24:46,996 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO 2022-05-06 17:24:47,558 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO 2022-05-06 17:24:47,558 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:48,118 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:48,118 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:48,677 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:48,677 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO 2022-05-06 17:24:49,192 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO 2022-05-06 17:24:49,193 [web_registerpage.py:155] 输入联系人姓名 INFO 2022-05-06 17:24:49,193 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='contactName']") INFO 2022-05-06 17:24:49,713 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='contactName']") INFO 2022-05-06 17:24:49,803 [webpage.py:78] 输入文本:谢飞 INFO 2022-05-06 17:24:49,812 [web_registerpage.py:163] 输入联系人手机号和邮箱 INFO 2022-05-06 17:24:49,813 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='mobile']") INFO 2022-05-06 17:24:50,334 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='mobile']") INFO 2022-05-06 17:24:50,424 [webpage.py:78] 输入文本:11123002647 INFO 2022-05-06 17:24:50,424 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='email']") INFO 2022-05-06 17:24:50,941 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='email']") INFO 2022-05-06 17:24:51,048 [webpage.py:78] 输入文本:11123002647@tehang.com INFO 2022-05-06 17:24:51,073 [web_registerpage.py:176] 开通产品 INFO 2022-05-06 17:24:51,073 [webpage.py:48] 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:51,592 [webpage.py:48] 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:52,163 [webpage.py:84] 点击元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:52,163 [webpage.py:58] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item') INFO 2022-05-06 17:24:52,181 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:52,750 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:52,751 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:53,308 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:53,309 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:24:53,867 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:24:53,867 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[4]') INFO 2022-05-06 17:24:54,428 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[4]') INFO 2022-05-06 17:24:54,428 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO 2022-05-06 17:24:54,988 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO 2022-05-06 17:24:54,988 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO 2022-05-06 17:24:55,542 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO 2022-05-06 17:24:55,543 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO 2022-05-06 17:24:56,094 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO 2022-05-06 17:24:56,094 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:56,650 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:56,650 [webpage.py:48] 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:57,171 [webpage.py:97] js注入方式点击元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:57,171 [web_registerpage.py:187] 提交机构数据 INFO 2022-05-06 17:24:57,171 [webpage.py:48] 查找元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO 2022-05-06 17:24:57,693 [webpage.py:48] 查找元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO 2022-05-06 17:24:58,274 [webpage.py:84] 点击元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO 2022-05-06 17:25:04,276 [web_registerpage.py:199] 获取机构名称 INFO 2022-05-06 17:25:04,277 [webpage.py:48] 查找元素:('xpath', "//h1[@class='page-header__title ng-star-inserted']") INFO 2022-05-06 17:25:04,301 [webpage.py:89] 获取文本:新增机构客户 ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-tehang-system.teyixing.com/login INFO  logger:web_adminloginpage.py:13 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO  logger:webpage.py:78 输入文本:15950582102 INFO  logger:web_adminloginpage.py:18 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_adminloginpage.py:23 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:web_adminloginpage.py:28 获取标签栏文字 INFO  logger:webpage.py:48 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO  logger:webpage.py:89 获取文本:呼叫接入 INFO  logger:adminlogin.py:27 后台账号:15950582102登录成功 INFO  logger:web_registerpage.py:18 点击 运营管理 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '运营管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '运营管理')]") INFO  logger:web_registerpage.py:23 点击 商旅事业部--机构客户 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO  logger:web_registerpage.py:28 点击 新增按钮 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO  logger:web_registerpage.py:39 选中客户类型--tmc INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpType']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpType']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[contains(text(),'TMC')]") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[contains(text(),'TMC')]") INFO  logger:web_registerpage.py:51 输入客户全称 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@formcontrolname='nameCn']") INFO  logger:webpage.py:78 输入文本:彩虹信息有限公司 INFO  logger:web_registerpage.py:64 输入会员号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@formcontrolname='code']") INFO  logger:webpage.py:78 输入文本:TH3341357121 INFO  logger:web_registerpage.py:110 填写客户信息 INFO  logger:web_registerpage.py:71 选择客户规模 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpSize']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpSize']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:web_registerpage.py:77 选择业务状态 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:web_registerpage.py:83 选择所属行业 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:web_registerpage.py:89 选择信用等级 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:web_registerpage.py:95 选择省-市-区 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='location']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='location']") INFO  logger:webpage.py:48 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[5]') INFO  logger:webpage.py:84 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[5]') INFO  logger:webpage.py:48 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[2]/li[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[2]/li[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[3]/li[2]') INFO  logger:webpage.py:84 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[3]/li[2]') INFO  logger:web_registerpage.py:103 输入具体地址 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@formcontrolname='address']") INFO  logger:webpage.py:78 输入文本:东莞街R座 INFO  logger:web_registerpage.py:147 填写服务信息 INFO  logger:web_registerpage.py:119 选择销售经理 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[13]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[13]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[15]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[15]') INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO  logger:web_registerpage.py:126 选择客服经理 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO  logger:web_registerpage.py:133 选择结算经理 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO  logger:web_registerpage.py:140 选择维护经理 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO  logger:web_registerpage.py:155 输入联系人姓名 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='contactName']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='contactName']") INFO  logger:webpage.py:78 输入文本:谢飞 INFO  logger:web_registerpage.py:163 输入联系人手机号和邮箱 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='mobile']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='mobile']") INFO  logger:webpage.py:78 输入文本:11123002647 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='email']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='email']") INFO  logger:webpage.py:78 输入文本:11123002647@tehang.com INFO  logger:web_registerpage.py:176 开通产品 INFO  logger:webpage.py:48 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:webpage.py:58 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[4]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[4]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:48 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:web_registerpage.py:187 提交机构数据 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO  logger:webpage.py:84 点击元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO  logger:web_registerpage.py:199 获取机构名称 INFO  logger:webpage.py:48 查找元素:('xpath', "//h1[@class='page-header__title ng-star-inserted']") INFO  logger:webpage.py:89 获取文本:新增机构客户----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:25:05,650 [webpage.py:36] 打开网页:https://staging-tehang-system.teyixing.com/login INFO 2022-05-06 17:25:05,651 [web_adminloginpage.py:13] 输入账号 INFO 2022-05-06 17:25:05,651 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO 2022-05-06 17:25:05,856 [webpage.py:78] 输入文本:15950582102 INFO 2022-05-06 17:25:05,856 [web_adminloginpage.py:18] 输入密码 INFO 2022-05-06 17:25:05,856 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:25:05,987 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:25:05,987 [web_adminloginpage.py:23] 点击登录 INFO 2022-05-06 17:25:05,987 [webpage.py:48] 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:25:06,531 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:25:06,531 [web_adminloginpage.py:28] 获取标签栏文字 INFO 2022-05-06 17:25:06,532 [webpage.py:48] 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO 2022-05-06 17:25:06,555 [webpage.py:89] 获取文本:呼叫接入 INFO 2022-05-06 17:25:06,555 [adminlogin.py:27] 后台账号:15950582102登录成功 INFO 2022-05-06 17:25:06,555 [web_registerpage.py:18] 点击 运营管理 INFO 2022-05-06 17:25:06,555 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '运营管理')]") INFO 2022-05-06 17:25:07,072 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '运营管理')]") INFO 2022-05-06 17:25:07,072 [web_registerpage.py:23] 点击 商旅事业部--机构客户 INFO 2022-05-06 17:25:07,073 [webpage.py:48] 查找元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO 2022-05-06 17:25:07,644 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO 2022-05-06 17:25:07,645 [web_registerpage.py:28] 点击 新增按钮 INFO 2022-05-06 17:25:07,646 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO 2022-05-06 17:25:08,320 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO 2022-05-06 17:25:08,320 [web_registerpage.py:39] 选中客户类型--tmc INFO 2022-05-06 17:25:08,321 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpType']") INFO 2022-05-06 17:25:08,900 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpType']") INFO 2022-05-06 17:25:08,900 [webpage.py:48] 查找元素:('xpath', "//*[contains(text(),'TMC')]") INFO 2022-05-06 17:25:09,460 [webpage.py:84] 点击元素:('xpath', "//*[contains(text(),'TMC')]") INFO 2022-05-06 17:25:09,460 [web_registerpage.py:51] 输入客户全称 INFO 2022-05-06 17:25:09,460 [webpage.py:48] 查找元素:('xpath', "//input[@formcontrolname='nameCn']") INFO 2022-05-06 17:25:09,568 [webpage.py:78] 输入文本:维涛传媒有限公司 INFO 2022-05-06 17:25:09,580 [web_registerpage.py:64] 输入会员号 INFO 2022-05-06 17:25:09,581 [webpage.py:48] 查找元素:('xpath', "//input[@formcontrolname='code']") INFO 2022-05-06 17:25:09,676 [webpage.py:78] 输入文本:TH3448849579 INFO 2022-05-06 17:25:09,684 [web_registerpage.py:110] 填写客户信息 INFO 2022-05-06 17:25:09,684 [web_registerpage.py:71] 选择客户规模 INFO 2022-05-06 17:25:09,685 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpSize']") INFO 2022-05-06 17:25:10,242 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpSize']") INFO 2022-05-06 17:25:10,242 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:25:10,799 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:25:10,799 [web_registerpage.py:77] 选择业务状态 INFO 2022-05-06 17:25:10,799 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO 2022-05-06 17:25:11,365 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO 2022-05-06 17:25:11,365 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:25:11,916 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:25:11,916 [web_registerpage.py:83] 选择所属行业 INFO 2022-05-06 17:25:11,917 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO 2022-05-06 17:25:12,491 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO 2022-05-06 17:25:12,492 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[9]') INFO 2022-05-06 17:25:13,056 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[9]') INFO 2022-05-06 17:25:13,058 [web_registerpage.py:89] 选择信用等级 INFO 2022-05-06 17:25:13,058 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO 2022-05-06 17:25:13,625 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO 2022-05-06 17:25:13,625 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:25:14,177 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:25:14,177 [web_registerpage.py:95] 选择省-市-区 INFO 2022-05-06 17:25:14,177 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='location']") INFO 2022-05-06 17:25:14,752 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='location']") INFO 2022-05-06 17:25:14,752 [webpage.py:48] 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[15]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-tehang-system.teyixing.com/login INFO  logger:web_adminloginpage.py:13 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO  logger:webpage.py:78 输入文本:15950582102 INFO  logger:web_adminloginpage.py:18 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_adminloginpage.py:23 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:web_adminloginpage.py:28 获取标签栏文字 INFO  logger:webpage.py:48 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO  logger:webpage.py:89 获取文本:呼叫接入 INFO  logger:adminlogin.py:27 后台账号:15950582102登录成功 INFO  logger:web_registerpage.py:18 点击 运营管理 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '运营管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '运营管理')]") INFO  logger:web_registerpage.py:23 点击 商旅事业部--机构客户 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO  logger:web_registerpage.py:28 点击 新增按钮 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO  logger:web_registerpage.py:39 选中客户类型--tmc INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpType']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpType']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[contains(text(),'TMC')]") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[contains(text(),'TMC')]") INFO  logger:web_registerpage.py:51 输入客户全称 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@formcontrolname='nameCn']") INFO  logger:webpage.py:78 输入文本:维涛传媒有限公司 INFO  logger:web_registerpage.py:64 输入会员号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@formcontrolname='code']") INFO  logger:webpage.py:78 输入文本:TH3448849579 INFO  logger:web_registerpage.py:110 填写客户信息 INFO  logger:web_registerpage.py:71 选择客户规模 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpSize']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpSize']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:web_registerpage.py:77 选择业务状态 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:web_registerpage.py:83 选择所属行业 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[9]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[9]') INFO  logger:web_registerpage.py:89 选择信用等级 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:web_registerpage.py:95 选择省-市-区 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='location']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='location']") INFO  logger:webpage.py:48 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[15]')
Failed WEB-国内机票--预订 TestCase/01_web/test_03_web_flight.py::TestFlight::test_001 38.43
screenshot
self = <test_03_web_flight.TestFlight object at 0x10e865eb8>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>, flight_stub = None
close_authorization = None

@pytest.mark.dependency(name="book_flight")
def test_001(self, drivers, flight_stub, close_authorization):
"""WEB-国内机票--预订"""
> assert self.book_flight(drivers)

TestCase/01_web/test_03_web_flight.py:101:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
TestCase/01_web/test_03_web_flight.py:43: in book_flight
assert "支付完成" in book.book_one_way(departure_city, arrive_city, check)
PageObject/WebObject/web_bookflightpage.py:247: in book_one_way
self.place_order(departure_city, arrive_city, one_person)
PageObject/WebObject/web_bookflightpage.py:237: in place_order
self.click_book()
PageObject/WebObject/web_bookflightpage.py:154: in click_book
self.js_click(book["预订"])
page/webpage.py:94: in js_click
element = self.find_element(locator)
page/webpage.py:51: in find_element
EC.presence_of_element_located(args)), locator)
page/webpage.py:44: in element_locator
return func(cm.LOCATE_MODE[name], value)
page/webpage.py:51: in <lambda>
EC.presence_of_element_located(args)), locator)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.support.wait.WebDriverWait (session="46b458b22cd2b8955299e19ac233f453")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x10e8494e0>, message = ''

def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None

end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:

../../venv/lib/python3.7/site-packages/selenium/webdriver/support/wait.py:80: TimeoutException
---------------------------- Captured stderr setup -----------------------------
INFO 2022-05-06 17:27:15,561 [webpage.py:36] 打开网页:https://staging-tehang-system.teyixing.com/login INFO 2022-05-06 17:27:15,561 [web_adminloginpage.py:13] 输入账号 INFO 2022-05-06 17:27:15,562 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO 2022-05-06 17:27:15,740 [webpage.py:78] 输入文本:15950582102 INFO 2022-05-06 17:27:15,741 [web_adminloginpage.py:18] 输入密码 INFO 2022-05-06 17:27:15,741 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:27:15,839 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:27:15,839 [web_adminloginpage.py:23] 点击登录 INFO 2022-05-06 17:27:15,839 [webpage.py:48] 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:27:16,361 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:27:16,361 [web_adminloginpage.py:28] 获取标签栏文字 INFO 2022-05-06 17:27:16,361 [webpage.py:48] 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO 2022-05-06 17:27:16,379 [webpage.py:89] 获取文本:呼叫接入 INFO 2022-05-06 17:27:16,379 [adminlogin.py:27] 后台账号:15950582102登录成功 INFO 2022-05-06 17:27:16,379 [web_systemmanagepage.py:90] 将国内机票测试桩全配置为返回成功结果 INFO 2022-05-06 17:27:16,379 [web_systemmanagepage.py:12] 到国内机票测试桩配置页面 INFO 2022-05-06 17:27:16,379 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '系统管理')]") INFO 2022-05-06 17:27:16,906 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '系统管理')]") INFO 2022-05-06 17:27:16,906 [webpage.py:48] 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:27:17,432 [webpage.py:48] 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:27:17,996 [webpage.py:97] js注入方式点击元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:27:17,996 [webpage.py:58] 查找元素:('xpath', '//flight-stub-config//nz-select') INFO 2022-05-06 17:27:18,072 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:18,626 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:18,669 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:19,185 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:19,230 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:19,747 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:19,789 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:20,304 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:20,344 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:20,868 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:20,909 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:21,430 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:21,470 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:21,986 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:22,026 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:22,542 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:22,582 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:23,109 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:23,149 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:23,661 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:23,662 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:27:24,181 [web_systemmanagepage.py:85] 提交配置 INFO 2022-05-06 17:27:24,181 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:27:24,715 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:27:25,046 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:27:25,046 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:27:25,046 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:27:25,305 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:27:25,306 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:27:25,306 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:27:25,379 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:27:25,379 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:27:25,379 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:27:25,900 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:27:25,900 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:27:25,901 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:27:25,932 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:27:25,932 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:27:25,932 [web_authorizationsettingpage.py:15] 首页进入事前授权设置页面 INFO 2022-05-06 17:27:25,932 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO 2022-05-06 17:27:26,462 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO 2022-05-06 17:27:26,462 [webpage.py:48] 查找元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO 2022-05-06 17:27:27,005 [webpage.py:97] js注入方式点击元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO 2022-05-06 17:27:27,005 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO 2022-05-06 17:27:27,539 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO 2022-05-06 17:27:28,546 [web_authorizationsettingpage.py:23] 点击设置授权规则按钮 INFO 2022-05-06 17:27:28,546 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'设置授权规则')]/..") ------------------------------ Captured log setup ------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-tehang-system.teyixing.com/login INFO  logger:web_adminloginpage.py:13 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO  logger:webpage.py:78 输入文本:15950582102 INFO  logger:web_adminloginpage.py:18 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_adminloginpage.py:23 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:web_adminloginpage.py:28 获取标签栏文字 INFO  logger:webpage.py:48 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO  logger:webpage.py:89 获取文本:呼叫接入 INFO  logger:adminlogin.py:27 后台账号:15950582102登录成功 INFO  logger:web_systemmanagepage.py:90 将国内机票测试桩全配置为返回成功结果 INFO  logger:web_systemmanagepage.py:12 到国内机票测试桩配置页面 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '系统管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '系统管理')]") INFO  logger:webpage.py:48 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:48 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:58 查找元素:('xpath', '//flight-stub-config//nz-select') INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:web_systemmanagepage.py:85 提交配置 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_authorizationsettingpage.py:15 首页进入事前授权设置页面 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO  logger:webpage.py:48 查找元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO  logger:web_authorizationsettingpage.py:23 点击设置授权规则按钮 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'设置授权规则')]/..")---------------------------- Captured stderr setup -----------------------------
INFO 2022-05-06 17:28:11,298 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:28:11,298 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:28:11,298 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:28:11,578 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:28:11,579 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:28:11,579 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:28:11,708 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:28:11,708 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:28:11,709 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:28:12,247 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:28:12,248 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:28:12,248 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:28:12,393 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:28:12,394 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:28:12,394 [web_authorizationsettingpage.py:15] 首页进入事前授权设置页面 INFO 2022-05-06 17:28:12,394 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO 2022-05-06 17:28:12,953 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO 2022-05-06 17:28:12,953 [webpage.py:48] 查找元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO 2022-05-06 17:28:13,570 [webpage.py:97] js注入方式点击元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO 2022-05-06 17:28:13,570 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO 2022-05-06 17:28:14,159 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO 2022-05-06 17:28:15,164 [web_authorizationsettingpage.py:23] 点击设置授权规则按钮 INFO 2022-05-06 17:28:15,164 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'设置授权规则')]/..") INFO 2022-05-06 17:28:15,718 [webpage.py:84] 点击元素:('xpath', "//span[contains(text(),'设置授权规则')]/..") INFO 2022-05-06 17:28:15,719 [web_authorizationsettingpage.py:28] 判断授权管控是否开始 INFO 2022-05-06 17:28:15,719 [webpage.py:48] 查找元素:('xpath', "//nz-switch[@formcontrolname='authorizeEnabled']/button[1]") ------------------------------ Captured log setup ------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_authorizationsettingpage.py:15 首页进入事前授权设置页面 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO  logger:webpage.py:48 查找元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO  logger:web_authorizationsettingpage.py:23 点击设置授权规则按钮 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'设置授权规则')]/..") INFO  logger:webpage.py:84 点击元素:('xpath', "//span[contains(text(),'设置授权规则')]/..") INFO  logger:web_authorizationsettingpage.py:28 判断授权管控是否开始 INFO  logger:webpage.py:48 查找元素:('xpath', "//nz-switch[@formcontrolname='authorizeEnabled']/button[1]")----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:28:16,072 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:28:16,073 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:28:16,073 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:28:16,294 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:28:16,294 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:28:16,294 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:28:16,423 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:28:16,424 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:28:16,424 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:28:16,955 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:28:16,955 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:28:16,955 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:28:17,027 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:28:17,028 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:28:17,028 [web_bookflightpage.py:246] 预订单程机票 INFO 2022-05-06 17:28:17,028 [web_bookflightpage.py:230] 生成待支付订单 INFO 2022-05-06 17:28:17,028 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:28:17,306 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:28:18,087 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:28:19,092 [web_bookflightpage.py:24] 点击单程 INFO 2022-05-06 17:28:19,093 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:28:19,625 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:28:19,626 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:28:19,626 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:28:19,626 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:28:19,638 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:28:19,768 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:28:19,768 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:28:20,334 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:28:20,335 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:28:20,335 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:28:20,335 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:28:20,343 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:28:20,424 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:28:20,424 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:28:20,943 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:28:20,944 [web_bookflightpage.py:96] 选中日期 INFO 2022-05-06 17:28:20,944 [web_bookflightpage.py:81] 点击日期 INFO 2022-05-06 17:28:20,944 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:28:21,023 [web_bookflightpage.py:86] 点击选中日期 INFO 2022-05-06 17:28:21,024 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:28:21,024 [web_bookflightpage.py:89] 日期:2022年6月14日 INFO 2022-05-06 17:28:21,024 [webpage.py:48] 查找元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO 2022-05-06 17:28:21,552 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO 2022-05-06 17:28:21,552 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年6月14日']") INFO 2022-05-06 17:28:22,082 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年6月14日']") INFO 2022-05-06 17:28:23,087 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:28:23,088 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:28:23,613 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:28:23,614 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:28:23,614 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:246 预订单程机票 INFO  logger:web_bookflightpage.py:230 生成待支付订单 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:web_bookflightpage.py:24 点击单程 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:96 选中日期 INFO  logger:web_bookflightpage.py:81 点击日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:web_bookflightpage.py:86 点击选中日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:89 日期:2022年6月14日 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年6月14日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年6月14日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')
Failed WEB-国内机票--预订往返程机票 TestCase/01_web/test_03_web_flight.py::TestFlight::test_011 38.40
screenshot
self = <test_03_web_flight.TestFlight object at 0x10fadb6a0>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>

@pytest.mark.dependency(name="round_book")
def test_011(self, drivers):
"""WEB-国内机票--预订往返程机票"""
global ORDER_ID
CustomerLogin(drivers).customer_login()
book = BookFlightPage(drivers)
> assert "支付完成" in book.book_round_trip(departure_city="深圳", arrive_city="北京")

TestCase/01_web/test_03_web_flight.py:203:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
PageObject/WebObject/web_bookflightpage.py:259: in book_round_trip
self.click_book() # 去程
PageObject/WebObject/web_bookflightpage.py:154: in click_book
self.js_click(book["预订"])
page/webpage.py:94: in js_click
element = self.find_element(locator)
page/webpage.py:51: in find_element
EC.presence_of_element_located(args)), locator)
page/webpage.py:44: in element_locator
return func(cm.LOCATE_MODE[name], value)
page/webpage.py:51: in <lambda>
EC.presence_of_element_located(args)), locator)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.support.wait.WebDriverWait (session="46b458b22cd2b8955299e19ac233f453")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x10fad7d30>, message = ''

def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None

end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:

../../venv/lib/python3.7/site-packages/selenium/webdriver/support/wait.py:80: TimeoutException
----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:28:55,138 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:28:55,139 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:28:55,139 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:28:55,409 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:28:55,410 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:28:55,410 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:28:55,542 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:28:55,543 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:28:55,543 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:28:56,075 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:28:56,075 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:28:56,076 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:28:56,156 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:28:56,156 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:28:56,156 [web_bookflightpage.py:252] 预订往返机票 INFO 2022-05-06 17:28:56,156 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:28:56,416 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:28:57,179 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:28:58,180 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO 2022-05-06 17:28:58,718 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO 2022-05-06 17:28:58,718 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:28:58,719 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:28:58,719 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:28:58,731 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:28:58,844 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:28:58,844 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:28:59,395 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:28:59,395 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:28:59,396 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:28:59,396 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:28:59,402 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:28:59,483 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:28:59,483 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:29:00,001 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:29:00,001 [web_bookflightpage.py:102] 选中往返时间 INFO 2022-05-06 17:29:00,001 [web_bookflightpage.py:123] 生成随机日期 INFO 2022-05-06 17:29:00,002 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:29:00,002 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:29:00,002 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:29:00,080 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年5月24日']") INFO 2022-05-06 17:29:00,612 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年5月24日']") INFO 2022-05-06 17:29:00,678 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年5月26日']") INFO 2022-05-06 17:29:01,212 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年5月26日']") INFO 2022-05-06 17:29:01,213 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:29:01,213 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:29:01,739 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:29:01,739 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:29:01,739 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:252 预订往返机票 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:102 选中往返时间 INFO  logger:web_bookflightpage.py:123 生成随机日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年5月24日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年5月24日']") INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年5月26日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年5月26日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:29:33,257 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:29:33,257 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:29:33,257 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:29:33,466 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:29:33,467 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:29:33,467 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:29:33,566 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:29:33,567 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:29:33,567 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:29:34,094 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:29:34,095 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:29:34,095 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:29:34,144 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:29:34,144 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:29:34,144 [web_bookflightpage.py:252] 预订往返机票 INFO 2022-05-06 17:29:34,144 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:29:34,155 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:29:35,144 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:29:36,151 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO 2022-05-06 17:29:36,685 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO 2022-05-06 17:29:36,685 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:29:36,685 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:29:36,685 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:29:36,698 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:29:36,824 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:29:36,824 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:29:37,378 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:29:37,379 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:29:37,379 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:29:37,379 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:29:37,389 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:29:37,470 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:29:37,471 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:29:37,990 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:29:37,990 [web_bookflightpage.py:102] 选中往返时间 INFO 2022-05-06 17:29:37,991 [web_bookflightpage.py:123] 生成随机日期 INFO 2022-05-06 17:29:37,991 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:29:37,991 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:29:37,991 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:29:38,070 [webpage.py:48] 查找元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO 2022-05-06 17:29:38,594 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO 2022-05-06 17:29:38,594 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年6月6日']") INFO 2022-05-06 17:29:39,124 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年6月6日']") INFO 2022-05-06 17:29:39,186 [webpage.py:48] 查找元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO 2022-05-06 17:29:39,712 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO 2022-05-06 17:29:39,713 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年6月8日']") INFO 2022-05-06 17:29:40,243 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年6月8日']") INFO 2022-05-06 17:29:40,243 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:29:40,244 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:29:40,770 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:29:40,771 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:29:40,771 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:252 预订往返机票 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:102 选中往返时间 INFO  logger:web_bookflightpage.py:123 生成随机日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年6月6日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年6月6日']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年6月8日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年6月8日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')
Failed WEB-国内机票--预订多人单程机票 TestCase/01_web/test_03_web_flight.py::TestFlight::test_016 38.44
screenshot
self = <test_03_web_flight.TestFlight object at 0x10fade9e8>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>

@pytest.mark.dependency(name="persons")
def test_016(self, drivers):
"""WEB-国内机票--预订多人单程机票"""
> assert self.book_flight(drivers,check=False), "预订机票失败"

TestCase/01_web/test_03_web_flight.py:257:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
TestCase/01_web/test_03_web_flight.py:43: in book_flight
assert "支付完成" in book.book_one_way(departure_city, arrive_city, check)
PageObject/WebObject/web_bookflightpage.py:247: in book_one_way
self.place_order(departure_city, arrive_city, one_person)
PageObject/WebObject/web_bookflightpage.py:237: in place_order
self.click_book()
PageObject/WebObject/web_bookflightpage.py:154: in click_book
self.js_click(book["预订"])
page/webpage.py:94: in js_click
element = self.find_element(locator)
page/webpage.py:51: in find_element
EC.presence_of_element_located(args)), locator)
page/webpage.py:44: in element_locator
return func(cm.LOCATE_MODE[name], value)
page/webpage.py:51: in <lambda>
EC.presence_of_element_located(args)), locator)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.support.wait.WebDriverWait (session="46b458b22cd2b8955299e19ac233f453")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x10fa38518>, message = ''

def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None

end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:

../../venv/lib/python3.7/site-packages/selenium/webdriver/support/wait.py:80: TimeoutException
----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:30:12,271 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:30:12,272 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:30:12,272 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:30:12,564 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:30:12,564 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:30:12,564 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:30:12,697 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:30:12,698 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:30:12,698 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:30:13,233 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:30:13,233 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:30:13,233 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:30:13,275 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:30:13,275 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:30:13,276 [web_bookflightpage.py:246] 预订单程机票 INFO 2022-05-06 17:30:13,276 [web_bookflightpage.py:230] 生成待支付订单 INFO 2022-05-06 17:30:13,276 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:30:13,559 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:30:14,333 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:30:15,339 [web_bookflightpage.py:24] 点击单程 INFO 2022-05-06 17:30:15,339 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:30:15,871 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:30:15,871 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:30:15,871 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:30:15,871 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:30:15,884 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:30:15,990 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:30:15,991 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:16,565 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:16,565 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:30:16,566 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:30:16,566 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:30:16,574 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:30:16,652 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:30:16,653 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:17,169 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:17,169 [web_bookflightpage.py:96] 选中日期 INFO 2022-05-06 17:30:17,170 [web_bookflightpage.py:81] 点击日期 INFO 2022-05-06 17:30:17,170 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:30:17,248 [web_bookflightpage.py:86] 点击选中日期 INFO 2022-05-06 17:30:17,249 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:30:17,249 [web_bookflightpage.py:89] 日期:2022年5月16日 INFO 2022-05-06 17:30:17,249 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年5月16日']") INFO 2022-05-06 17:30:17,781 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年5月16日']") INFO 2022-05-06 17:30:18,786 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:30:18,787 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:30:19,313 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:30:19,314 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:30:19,314 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:246 预订单程机票 INFO  logger:web_bookflightpage.py:230 生成待支付订单 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:web_bookflightpage.py:24 点击单程 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:96 选中日期 INFO  logger:web_bookflightpage.py:81 点击日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:web_bookflightpage.py:86 点击选中日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:89 日期:2022年5月16日 INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年5月16日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年5月16日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:30:50,807 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:30:50,808 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:30:50,808 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:30:51,041 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:30:51,042 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:30:51,042 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:30:51,180 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:30:51,180 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:30:51,180 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:30:51,710 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:30:51,711 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:30:51,712 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:30:51,806 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:30:51,806 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:30:51,806 [web_bookflightpage.py:246] 预订单程机票 INFO 2022-05-06 17:30:51,806 [web_bookflightpage.py:230] 生成待支付订单 INFO 2022-05-06 17:30:51,807 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:30:52,065 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:30:52,816 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:30:53,821 [web_bookflightpage.py:24] 点击单程 INFO 2022-05-06 17:30:53,822 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:30:54,353 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:30:54,354 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:30:54,354 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:30:54,354 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:30:54,366 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:30:54,497 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:30:54,498 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:55,061 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:55,061 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:30:55,062 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:30:55,062 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:30:55,070 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:30:55,150 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:30:55,150 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:55,669 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:55,669 [web_bookflightpage.py:96] 选中日期 INFO 2022-05-06 17:30:55,669 [web_bookflightpage.py:81] 点击日期 INFO 2022-05-06 17:30:55,670 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:30:55,746 [web_bookflightpage.py:86] 点击选中日期 INFO 2022-05-06 17:30:55,746 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:30:55,746 [web_bookflightpage.py:89] 日期:2022年6月11日 INFO 2022-05-06 17:30:55,746 [webpage.py:48] 查找元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO 2022-05-06 17:30:56,279 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO 2022-05-06 17:30:56,279 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年6月11日']") INFO 2022-05-06 17:30:56,808 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年6月11日']") INFO 2022-05-06 17:30:57,808 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:30:57,809 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:30:58,339 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:30:58,339 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:30:58,340 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:246 预订单程机票 INFO  logger:web_bookflightpage.py:230 生成待支付订单 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:web_bookflightpage.py:24 点击单程 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:96 选中日期 INFO  logger:web_bookflightpage.py:81 点击日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:web_bookflightpage.py:86 点击选中日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:89 日期:2022年6月11日 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@title='下个月 (翻页下键)']") INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年6月11日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年6月11日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')
Failed WEB-授权--国内机票预订 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_003 17.98
screenshot
self = <test_04_web_flight_authorization.TestAuthorization object at 0x10e849a58>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>, flight_stub = None

@pytest.mark.dependency(name="book_flight")
def test_003(self, drivers, flight_stub):
"""WEB-授权--国内机票预订"""
> assert self.book_flight(drivers)

TestCase/01_web/test_04_web_flight_authorization.py:144:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
TestCase/01_web/test_04_web_flight_authorization.py:31: in book_flight
assert "支付完成" in book.book_one_way(departure_city, arrive_city)
PageObject/WebObject/web_bookflightpage.py:247: in book_one_way
self.place_order(departure_city, arrive_city, one_person)
PageObject/WebObject/web_bookflightpage.py:237: in place_order
self.click_book()
PageObject/WebObject/web_bookflightpage.py:154: in click_book
self.js_click(book["预订"])
page/webpage.py:94: in js_click
element = self.find_element(locator)
page/webpage.py:51: in find_element
EC.presence_of_element_located(args)), locator)
page/webpage.py:44: in element_locator
return func(cm.LOCATE_MODE[name], value)
page/webpage.py:51: in <lambda>
EC.presence_of_element_located(args)), locator)
../../venv/lib/python3.7/site-packages/selenium/webdriver/support/wait.py:71: in until
value = method(self._driver)
../../venv/lib/python3.7/site-packages/selenium/webdriver/support/expected_conditions.py:64: in __call__
return _find_element(driver, self.locator)
../../venv/lib/python3.7/site-packages/selenium/webdriver/support/expected_conditions.py:415: in _find_element
raise e
../../venv/lib/python3.7/site-packages/selenium/webdriver/support/expected_conditions.py:411: in _find_element
return driver.find_element(*by)
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:978: in find_element
'value': value})['value']
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x10e78e240>
response = {'status': 500, 'value': '{"value":{"error":"disconnected","message":"disconnected: not connected to DevTools\\n (Ses...fff6d968109 _pthread_start + 148\\n27 libsystem_pthread.dylib 0x00007fff6d963b8b thread_start + 15\\n"}}'}

def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.

:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.

:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
if len(value.keys()) == 1:
value = value['value']
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
message = message.get('message')
else:
message = value.get('message', None)
except ValueError:
pass

exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
exception_class = ElementNotInteractableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = InvalidCookieDomainException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = UnableToSetCookieException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
elif status in ErrorCode.JAVASCRIPT_ERROR:
exception_class = JavascriptException
elif status in ErrorCode.SESSION_NOT_CREATED:
exception_class = SessionNotCreatedException
elif status in ErrorCode.INVALID_ARGUMENT:
exception_class = InvalidArgumentException
elif status in ErrorCode.NO_SUCH_COOKIE:
exception_class = NoSuchCookieException
elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
exception_class = ScreenshotException
elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
exception_class = ElementClickInterceptedException
elif status in ErrorCode.INSECURE_CERTIFICATE:
exception_class = InsecureCertificateException
elif status in ErrorCode.INVALID_COORDINATES:
exception_class = InvalidCoordinatesException
elif status in ErrorCode.INVALID_SESSION_ID:
exception_class = InvalidSessionIdException
elif status in ErrorCode.UNKNOWN_METHOD:
exception_class = UnknownMethodException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']

screen = None
if 'screen' in value:
screen = value['screen']

stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException:
alert_text = None
if 'data' in value:
alert_text = value['data'].get('text')
elif 'alert' in value:
alert_text = value['alert'].get('text')
raise exception_class(message, screen, stacktrace, alert_text)
> raise exception_class(message, screen, stacktrace)
E selenium.common.exceptions.WebDriverException: Message: disconnected: not connected to DevTools
E (Session info: chrome=101.0.4951.54)

../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py:242: WebDriverException
---------------------------- Captured stderr setup -----------------------------
INFO 2022-05-06 17:31:43,144 [webpage.py:36] 打开网页:https://staging-tehang-system.teyixing.com/login INFO 2022-05-06 17:31:43,144 [web_adminloginpage.py:13] 输入账号 INFO 2022-05-06 17:31:43,144 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO 2022-05-06 17:31:43,382 [webpage.py:78] 输入文本:15950582102 INFO 2022-05-06 17:31:43,383 [web_adminloginpage.py:18] 输入密码 INFO 2022-05-06 17:31:43,383 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:31:43,495 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:31:43,496 [web_adminloginpage.py:23] 点击登录 INFO 2022-05-06 17:31:43,496 [webpage.py:48] 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:31:44,035 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:31:44,035 [web_adminloginpage.py:28] 获取标签栏文字 INFO 2022-05-06 17:31:44,035 [webpage.py:48] 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO 2022-05-06 17:31:44,060 [webpage.py:89] 获取文本:呼叫接入 INFO 2022-05-06 17:31:44,060 [adminlogin.py:27] 后台账号:15950582102登录成功 INFO 2022-05-06 17:31:44,060 [web_systemmanagepage.py:90] 将国内机票测试桩全配置为返回成功结果 INFO 2022-05-06 17:31:44,060 [web_systemmanagepage.py:12] 到国内机票测试桩配置页面 INFO 2022-05-06 17:31:44,060 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '系统管理')]") INFO 2022-05-06 17:31:44,579 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '系统管理')]") INFO 2022-05-06 17:31:44,580 [webpage.py:48] 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:31:45,100 [webpage.py:48] 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:31:45,669 [webpage.py:97] js注入方式点击元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:31:45,670 [webpage.py:58] 查找元素:('xpath', '//flight-stub-config//nz-select') INFO 2022-05-06 17:31:45,731 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:46,254 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:46,300 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:46,818 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:46,862 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:47,376 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:47,418 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:47,933 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:47,974 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:48,491 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:48,534 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:49,052 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:49,091 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:49,605 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:49,646 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:50,165 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:50,209 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:50,724 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:50,776 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:51,288 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:51,288 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:31:51,811 [web_systemmanagepage.py:85] 提交配置 INFO 2022-05-06 17:31:51,812 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:31:52,335 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(), '提交')]/..") ------------------------------ Captured log setup ------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-tehang-system.teyixing.com/login INFO  logger:web_adminloginpage.py:13 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO  logger:webpage.py:78 输入文本:15950582102 INFO  logger:web_adminloginpage.py:18 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_adminloginpage.py:23 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:web_adminloginpage.py:28 获取标签栏文字 INFO  logger:webpage.py:48 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO  logger:webpage.py:89 获取文本:呼叫接入 INFO  logger:adminlogin.py:27 后台账号:15950582102登录成功 INFO  logger:web_systemmanagepage.py:90 将国内机票测试桩全配置为返回成功结果 INFO  logger:web_systemmanagepage.py:12 到国内机票测试桩配置页面 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '系统管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '系统管理')]") INFO  logger:webpage.py:48 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:48 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:58 查找元素:('xpath', '//flight-stub-config//nz-select') INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:web_systemmanagepage.py:85 提交配置 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(), '提交')]/..")----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:31:52,672 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:31:52,672 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:31:52,672 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:31:52,917 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:31:52,917 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:31:52,917 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:31:53,030 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:31:53,030 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:31:53,031 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:31:53,564 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:31:53,564 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:31:53,565 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:31:53,629 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:31:53,630 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:31:53,630 [web_bookflightpage.py:246] 预订单程机票 INFO 2022-05-06 17:31:53,630 [web_bookflightpage.py:230] 生成待支付订单 INFO 2022-05-06 17:31:53,630 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:31:53,928 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:31:54,688 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:31:55,694 [web_bookflightpage.py:24] 点击单程 INFO 2022-05-06 17:31:55,694 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:31:56,229 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:31:56,229 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:31:56,229 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:31:56,229 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:31:56,242 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:31:56,364 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:31:56,364 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:31:56,912 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:31:56,912 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:31:56,912 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:31:56,912 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:31:56,920 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:31:56,999 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:31:56,999 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:31:57,520 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:31:57,520 [web_bookflightpage.py:96] 选中日期 INFO 2022-05-06 17:31:57,521 [web_bookflightpage.py:81] 点击日期 INFO 2022-05-06 17:31:57,521 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:31:57,600 [web_bookflightpage.py:86] 点击选中日期 INFO 2022-05-06 17:31:57,600 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:31:57,600 [web_bookflightpage.py:89] 日期:2022年5月25日 INFO 2022-05-06 17:31:57,601 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年5月25日']") INFO 2022-05-06 17:31:58,134 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年5月25日']") INFO 2022-05-06 17:31:59,139 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:31:59,139 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:31:59,665 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:31:59,665 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:31:59,665 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:246 预订单程机票 INFO  logger:web_bookflightpage.py:230 生成待支付订单 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:web_bookflightpage.py:24 点击单程 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:96 选中日期 INFO  logger:web_bookflightpage.py:81 点击日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:web_bookflightpage.py:86 点击选中日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:89 日期:2022年5月25日 INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年5月25日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年5月25日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:32:31,144 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:32:31,144 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:32:31,144 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:32:31,393 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:32:31,393 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:32:31,393 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:32:31,516 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:32:31,517 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:32:31,517 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:32:32,051 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:32:32,051 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:32:32,051 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:32:32,124 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:32:32,124 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:32:32,124 [web_bookflightpage.py:246] 预订单程机票 INFO 2022-05-06 17:32:32,125 [web_bookflightpage.py:230] 生成待支付订单 INFO 2022-05-06 17:32:32,125 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:32:32,403 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:32:33,155 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:32:34,159 [web_bookflightpage.py:24] 点击单程 INFO 2022-05-06 17:32:34,161 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:32:34,694 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:32:34,694 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:32:34,695 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:32:34,695 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:32:34,707 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:32:34,839 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:32:34,839 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:32:35,401 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:32:35,401 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:32:35,402 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:32:35,402 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:32:35,410 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:32:35,491 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:32:35,491 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:32:36,008 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:32:36,009 [web_bookflightpage.py:96] 选中日期 INFO 2022-05-06 17:32:36,009 [web_bookflightpage.py:81] 点击日期 INFO 2022-05-06 17:32:36,009 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:32:36,089 [web_bookflightpage.py:86] 点击选中日期 INFO 2022-05-06 17:32:36,089 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:32:36,089 [web_bookflightpage.py:89] 日期:2022年5月25日 INFO 2022-05-06 17:32:36,090 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年5月25日']") INFO 2022-05-06 17:32:36,618 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年5月25日']") INFO 2022-05-06 17:32:37,622 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:32:37,622 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:32:38,151 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:32:38,151 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:32:38,151 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:246 预订单程机票 INFO  logger:web_bookflightpage.py:230 生成待支付订单 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:web_bookflightpage.py:24 点击单程 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:96 选中日期 INFO  logger:web_bookflightpage.py:81 点击日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:web_bookflightpage.py:86 点击选中日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:89 日期:2022年5月25日 INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年5月25日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年5月25日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')
Rerun WEB-后台注册机构客户 TestCase/01_web/test_01_admin_register.py::TestRegister::test_002 55.96
screenshot
self = <test_01_admin_register.TestRegister object at 0x10e78ecc0>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>

@pytest.mark.dependency(name="register", depends=["code_login"])
# @pytest.mark.skip(reason="注册产生数据")
def test_002(self, drivers):
"""WEB-后台注册机构客户"""
global REG_ACCOUNT
AdminLogin(drivers).admin_lodin()
register = RegisterPage(drivers)
register.travel_dep_add()
register.customer_type_tmc()
company_name = register.full_customer_name()
register.member_id()
register.customer_info()
register.specific_address()
register.service_info()
register.contact_name()
REG_ACCOUNT = register.contact_phone_and_mail()
register.open_products()
register.save_corp()
> assert register.get_corp_name()==company_name
E AssertionError: assert '新增机构客户' == '彩虹信息有限公司'
E - 彩虹信息有限公司
E + 新增机构客户

TestCase/01_web/test_01_admin_register.py:90: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:24:25,584 [webpage.py:36] 打开网页:https://staging-tehang-system.teyixing.com/login INFO 2022-05-06 17:24:25,584 [web_adminloginpage.py:13] 输入账号 INFO 2022-05-06 17:24:25,584 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO 2022-05-06 17:24:25,718 [webpage.py:78] 输入文本:15950582102 INFO 2022-05-06 17:24:25,719 [web_adminloginpage.py:18] 输入密码 INFO 2022-05-06 17:24:25,719 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:24:25,837 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:24:25,837 [web_adminloginpage.py:23] 点击登录 INFO 2022-05-06 17:24:25,838 [webpage.py:48] 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:24:26,377 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:24:26,378 [web_adminloginpage.py:28] 获取标签栏文字 INFO 2022-05-06 17:24:26,378 [webpage.py:48] 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO 2022-05-06 17:24:26,583 [webpage.py:89] 获取文本:呼叫接入 INFO 2022-05-06 17:24:26,584 [adminlogin.py:27] 后台账号:15950582102登录成功 INFO 2022-05-06 17:24:26,584 [web_registerpage.py:18] 点击 运营管理 INFO 2022-05-06 17:24:26,584 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '运营管理')]") INFO 2022-05-06 17:24:27,105 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '运营管理')]") INFO 2022-05-06 17:24:27,105 [web_registerpage.py:23] 点击 商旅事业部--机构客户 INFO 2022-05-06 17:24:27,106 [webpage.py:48] 查找元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO 2022-05-06 17:24:28,972 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO 2022-05-06 17:24:28,972 [web_registerpage.py:28] 点击 新增按钮 INFO 2022-05-06 17:24:28,972 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO 2022-05-06 17:24:29,797 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO 2022-05-06 17:24:29,798 [web_registerpage.py:39] 选中客户类型--tmc INFO 2022-05-06 17:24:29,798 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpType']") INFO 2022-05-06 17:24:30,374 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpType']") INFO 2022-05-06 17:24:30,374 [webpage.py:48] 查找元素:('xpath', "//*[contains(text(),'TMC')]") INFO 2022-05-06 17:24:30,940 [webpage.py:84] 点击元素:('xpath', "//*[contains(text(),'TMC')]") INFO 2022-05-06 17:24:30,940 [web_registerpage.py:51] 输入客户全称 INFO 2022-05-06 17:24:30,940 [webpage.py:48] 查找元素:('xpath', "//input[@formcontrolname='nameCn']") INFO 2022-05-06 17:24:31,047 [webpage.py:78] 输入文本:彩虹信息有限公司 INFO 2022-05-06 17:24:31,060 [web_registerpage.py:64] 输入会员号 INFO 2022-05-06 17:24:31,060 [webpage.py:48] 查找元素:('xpath', "//input[@formcontrolname='code']") INFO 2022-05-06 17:24:31,154 [webpage.py:78] 输入文本:TH3341357121 INFO 2022-05-06 17:24:31,164 [web_registerpage.py:110] 填写客户信息 INFO 2022-05-06 17:24:31,164 [web_registerpage.py:71] 选择客户规模 INFO 2022-05-06 17:24:31,165 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpSize']") INFO 2022-05-06 17:24:31,722 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpSize']") INFO 2022-05-06 17:24:31,722 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:24:32,277 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:24:32,277 [web_registerpage.py:77] 选择业务状态 INFO 2022-05-06 17:24:32,278 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO 2022-05-06 17:24:32,856 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO 2022-05-06 17:24:32,856 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:33,412 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:33,413 [web_registerpage.py:83] 选择所属行业 INFO 2022-05-06 17:24:33,413 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO 2022-05-06 17:24:33,986 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO 2022-05-06 17:24:33,987 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:34,537 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:34,537 [web_registerpage.py:89] 选择信用等级 INFO 2022-05-06 17:24:34,537 [webpage.py:48] 查找元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO 2022-05-06 17:24:35,109 [webpage.py:84] 点击元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO 2022-05-06 17:24:35,109 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:35,659 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:35,660 [web_registerpage.py:95] 选择省-市-区 INFO 2022-05-06 17:24:35,660 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='location']") INFO 2022-05-06 17:24:36,257 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='location']") INFO 2022-05-06 17:24:36,257 [webpage.py:48] 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[5]') INFO 2022-05-06 17:24:36,822 [webpage.py:84] 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[5]') INFO 2022-05-06 17:24:36,822 [webpage.py:48] 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[2]/li[1]') INFO 2022-05-06 17:24:37,378 [webpage.py:84] 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[2]/li[1]') INFO 2022-05-06 17:24:37,378 [webpage.py:48] 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[3]/li[2]') INFO 2022-05-06 17:24:37,930 [webpage.py:84] 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[3]/li[2]') INFO 2022-05-06 17:24:37,930 [web_registerpage.py:103] 输入具体地址 INFO 2022-05-06 17:24:37,931 [webpage.py:48] 查找元素:('xpath', "//input[@formcontrolname='address']") INFO 2022-05-06 17:24:38,037 [webpage.py:78] 输入文本:东莞街R座 INFO 2022-05-06 17:24:38,052 [web_registerpage.py:147] 填写服务信息 INFO 2022-05-06 17:24:38,052 [web_registerpage.py:119] 选择销售经理 INFO 2022-05-06 17:24:38,052 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO 2022-05-06 17:24:38,623 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO 2022-05-06 17:24:38,624 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[13]') INFO 2022-05-06 17:24:39,194 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[13]') INFO 2022-05-06 17:24:39,194 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO 2022-05-06 17:24:39,756 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO 2022-05-06 17:24:39,757 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[15]') INFO 2022-05-06 17:24:40,318 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[15]') INFO 2022-05-06 17:24:40,318 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO 2022-05-06 17:24:40,835 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO 2022-05-06 17:24:40,835 [web_registerpage.py:126] 选择客服经理 INFO 2022-05-06 17:24:40,835 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO 2022-05-06 17:24:41,409 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO 2022-05-06 17:24:41,410 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO 2022-05-06 17:24:41,973 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO 2022-05-06 17:24:41,974 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO 2022-05-06 17:24:42,538 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO 2022-05-06 17:24:42,538 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:43,098 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:43,099 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO 2022-05-06 17:24:43,618 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO 2022-05-06 17:24:43,619 [web_registerpage.py:133] 选择结算经理 INFO 2022-05-06 17:24:43,619 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO 2022-05-06 17:24:44,195 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO 2022-05-06 17:24:44,196 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:44,775 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:44,775 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO 2022-05-06 17:24:45,341 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO 2022-05-06 17:24:45,342 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:45,903 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:45,903 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO 2022-05-06 17:24:46,418 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO 2022-05-06 17:24:46,418 [web_registerpage.py:140] 选择维护经理 INFO 2022-05-06 17:24:46,418 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO 2022-05-06 17:24:46,996 [webpage.py:84] 点击元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO 2022-05-06 17:24:46,996 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO 2022-05-06 17:24:47,558 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO 2022-05-06 17:24:47,558 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:48,118 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:48,118 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:48,677 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:48,677 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO 2022-05-06 17:24:49,192 [webpage.py:97] js注入方式点击元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO 2022-05-06 17:24:49,193 [web_registerpage.py:155] 输入联系人姓名 INFO 2022-05-06 17:24:49,193 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='contactName']") INFO 2022-05-06 17:24:49,713 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='contactName']") INFO 2022-05-06 17:24:49,803 [webpage.py:78] 输入文本:谢飞 INFO 2022-05-06 17:24:49,812 [web_registerpage.py:163] 输入联系人手机号和邮箱 INFO 2022-05-06 17:24:49,813 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='mobile']") INFO 2022-05-06 17:24:50,334 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='mobile']") INFO 2022-05-06 17:24:50,424 [webpage.py:78] 输入文本:11123002647 INFO 2022-05-06 17:24:50,424 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='email']") INFO 2022-05-06 17:24:50,941 [webpage.py:48] 查找元素:('xpath', "//*[@formcontrolname='email']") INFO 2022-05-06 17:24:51,048 [webpage.py:78] 输入文本:11123002647@tehang.com INFO 2022-05-06 17:24:51,073 [web_registerpage.py:176] 开通产品 INFO 2022-05-06 17:24:51,073 [webpage.py:48] 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:51,592 [webpage.py:48] 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:52,163 [webpage.py:84] 点击元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:52,163 [webpage.py:58] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item') INFO 2022-05-06 17:24:52,181 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:52,750 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO 2022-05-06 17:24:52,751 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:53,308 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO 2022-05-06 17:24:53,309 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:24:53,867 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO 2022-05-06 17:24:53,867 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[4]') INFO 2022-05-06 17:24:54,428 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[4]') INFO 2022-05-06 17:24:54,428 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO 2022-05-06 17:24:54,988 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO 2022-05-06 17:24:54,988 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO 2022-05-06 17:24:55,542 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO 2022-05-06 17:24:55,543 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO 2022-05-06 17:24:56,094 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO 2022-05-06 17:24:56,094 [webpage.py:48] 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:56,650 [webpage.py:84] 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO 2022-05-06 17:24:56,650 [webpage.py:48] 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:57,171 [webpage.py:97] js注入方式点击元素:('xpath', '//product-info[1]//nz-select[1]') INFO 2022-05-06 17:24:57,171 [web_registerpage.py:187] 提交机构数据 INFO 2022-05-06 17:24:57,171 [webpage.py:48] 查找元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO 2022-05-06 17:24:57,693 [webpage.py:48] 查找元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO 2022-05-06 17:24:58,274 [webpage.py:84] 点击元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO 2022-05-06 17:25:04,276 [web_registerpage.py:199] 获取机构名称 INFO 2022-05-06 17:25:04,277 [webpage.py:48] 查找元素:('xpath', "//h1[@class='page-header__title ng-star-inserted']") INFO 2022-05-06 17:25:04,301 [webpage.py:89] 获取文本:新增机构客户 ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-tehang-system.teyixing.com/login INFO  logger:web_adminloginpage.py:13 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO  logger:webpage.py:78 输入文本:15950582102 INFO  logger:web_adminloginpage.py:18 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_adminloginpage.py:23 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:web_adminloginpage.py:28 获取标签栏文字 INFO  logger:webpage.py:48 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO  logger:webpage.py:89 获取文本:呼叫接入 INFO  logger:adminlogin.py:27 后台账号:15950582102登录成功 INFO  logger:web_registerpage.py:18 点击 运营管理 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '运营管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '运营管理')]") INFO  logger:web_registerpage.py:23 点击 商旅事业部--机构客户 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(@href,'/operation/tmc/corp')]") INFO  logger:web_registerpage.py:28 点击 新增按钮 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'新增 ')]/..") INFO  logger:web_registerpage.py:39 选中客户类型--tmc INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpType']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpType']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[contains(text(),'TMC')]") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[contains(text(),'TMC')]") INFO  logger:web_registerpage.py:51 输入客户全称 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@formcontrolname='nameCn']") INFO  logger:webpage.py:78 输入文本:彩虹信息有限公司 INFO  logger:web_registerpage.py:64 输入会员号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@formcontrolname='code']") INFO  logger:webpage.py:78 输入文本:TH3341357121 INFO  logger:web_registerpage.py:110 填写客户信息 INFO  logger:web_registerpage.py:71 选择客户规模 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpSize']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpSize']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:web_registerpage.py:77 选择业务状态 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpBizStatus']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:web_registerpage.py:83 选择所属行业 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpIndustry']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:web_registerpage.py:89 选择信用等级 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@dicttype='CorpCreditRating']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:web_registerpage.py:95 选择省-市-区 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='location']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='location']") INFO  logger:webpage.py:48 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[5]') INFO  logger:webpage.py:84 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[1]/li[5]') INFO  logger:webpage.py:48 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[2]/li[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[2]/li[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[3]/li[2]') INFO  logger:webpage.py:84 点击元素:('xpath', '//body/div[2]/div[2]/div[1]/div[1]/ul[3]/li[2]') INFO  logger:web_registerpage.py:103 输入具体地址 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@formcontrolname='address']") INFO  logger:webpage.py:78 输入文本:东莞街R座 INFO  logger:web_registerpage.py:147 填写服务信息 INFO  logger:web_registerpage.py:119 选择销售经理 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[13]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[13]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[15]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[15]') INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@formcontrolname='salesStaffs']") INFO  logger:web_registerpage.py:126 选择客服经理 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@formcontrolname='customerStaffs']") INFO  logger:web_registerpage.py:133 选择结算经理 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@formcontrolname='settlementStaffs']") INFO  logger:web_registerpage.py:140 选择维护经理 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO  logger:webpage.py:84 点击元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[14]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//*[@formcontrolname='maintainStaffs']") INFO  logger:web_registerpage.py:155 输入联系人姓名 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='contactName']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='contactName']") INFO  logger:webpage.py:78 输入文本:谢飞 INFO  logger:web_registerpage.py:163 输入联系人手机号和邮箱 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='mobile']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='mobile']") INFO  logger:webpage.py:78 输入文本:11123002647 INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='email']") INFO  logger:webpage.py:48 查找元素:('xpath', "//*[@formcontrolname='email']") INFO  logger:webpage.py:78 输入文本:11123002647@tehang.com INFO  logger:web_registerpage.py:176 开通产品 INFO  logger:webpage.py:48 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:webpage.py:58 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[1]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[2]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[3]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[4]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[4]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[5]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[6]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[7]') INFO  logger:webpage.py:48 查找元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:84 点击元素:('xpath', '//cdk-virtual-scroll-viewport[1]/div[1]/nz-option-item[8]') INFO  logger:webpage.py:48 查找元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//product-info[1]//nz-select[1]') INFO  logger:web_registerpage.py:187 提交机构数据 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO  logger:webpage.py:84 点击元素:('xpath', "//button[@class='mx-lg px-lg ant-btn ant-btn-primary ant-btn-lg ng-star-inserted']") INFO  logger:web_registerpage.py:199 获取机构名称 INFO  logger:webpage.py:48 查找元素:('xpath', "//h1[@class='page-header__title ng-star-inserted']") INFO  logger:webpage.py:89 获取文本:新增机构客户
Rerun WEB-国内机票--预订 TestCase/01_web/test_03_web_flight.py::TestFlight::test_001::setup 16.51
screenshot
drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>

@pytest.fixture(scope='module')
def close_authorization(drivers):
"""WEB-关闭授权流程"""
CustomerLogin(drivers).customer_login()
setting = AuthorizationSettingPage(drivers)
setting.to_authorization_setting()
> setting.set_authorization_rule()

TestCase/01_web/test_03_web_flight.py:22:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
PageObject/WebObject/web_authorizationsettingpage.py:24: in set_authorization_rule
self.is_click(authorizationsetting["设置授权规则"])
page/webpage.py:82: in is_click
self.find_element(locator).click()
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py:80: in click
self._execute(Command.CLICK_ELEMENT)
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py:633: in _execute
return self._parent.execute(command, params)
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x10e78e240>
response = {'status': 400, 'value': '{"value":{"error":"element click intercepted","message":"element click intercepted: Element ...fff6d968109 _pthread_start + 148\\n24 libsystem_pthread.dylib 0x00007fff6d963b8b thread_start + 15\\n"}}'}

def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.

:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.

:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
if len(value.keys()) == 1:
value = value['value']
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
message = message.get('message')
else:
message = value.get('message', None)
except ValueError:
pass

exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
exception_class = ElementNotInteractableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = InvalidCookieDomainException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = UnableToSetCookieException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
elif status in ErrorCode.JAVASCRIPT_ERROR:
exception_class = JavascriptException
elif status in ErrorCode.SESSION_NOT_CREATED:
exception_class = SessionNotCreatedException
elif status in ErrorCode.INVALID_ARGUMENT:
exception_class = InvalidArgumentException
elif status in ErrorCode.NO_SUCH_COOKIE:
exception_class = NoSuchCookieException
elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
exception_class = ScreenshotException
elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
exception_class = ElementClickInterceptedException
elif status in ErrorCode.INSECURE_CERTIFICATE:
exception_class = InsecureCertificateException
elif status in ErrorCode.INVALID_COORDINATES:
exception_class = InvalidCoordinatesException
elif status in ErrorCode.INVALID_SESSION_ID:
exception_class = InvalidSessionIdException
elif status in ErrorCode.UNKNOWN_METHOD:
exception_class = UnknownMethodException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']

screen = None
if 'screen' in value:
screen = value['screen']

stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException:
alert_text = None
if 'data' in value:
alert_text = value['data'].get('text')
elif 'alert' in value:
alert_text = value['alert'].get('text')
raise exception_class(message, screen, stacktrace, alert_text)
> raise exception_class(message, screen, stacktrace)
E selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <button _ngcontent-vry-c407="" nz-button="" nztype="primary" type="button" class="ant-btn ant-btn-primary">...</button> is not clickable at point (447, 332). Other element would receive the click: <div class="cs-loader">...</div>
E (Session info: chrome=101.0.4951.54)

../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py:242: ElementClickInterceptedException
---------------------------- Captured stderr setup -----------------------------
INFO 2022-05-06 17:27:15,561 [webpage.py:36] 打开网页:https://staging-tehang-system.teyixing.com/login INFO 2022-05-06 17:27:15,561 [web_adminloginpage.py:13] 输入账号 INFO 2022-05-06 17:27:15,562 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO 2022-05-06 17:27:15,740 [webpage.py:78] 输入文本:15950582102 INFO 2022-05-06 17:27:15,741 [web_adminloginpage.py:18] 输入密码 INFO 2022-05-06 17:27:15,741 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:27:15,839 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:27:15,839 [web_adminloginpage.py:23] 点击登录 INFO 2022-05-06 17:27:15,839 [webpage.py:48] 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:27:16,361 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:27:16,361 [web_adminloginpage.py:28] 获取标签栏文字 INFO 2022-05-06 17:27:16,361 [webpage.py:48] 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO 2022-05-06 17:27:16,379 [webpage.py:89] 获取文本:呼叫接入 INFO 2022-05-06 17:27:16,379 [adminlogin.py:27] 后台账号:15950582102登录成功 INFO 2022-05-06 17:27:16,379 [web_systemmanagepage.py:90] 将国内机票测试桩全配置为返回成功结果 INFO 2022-05-06 17:27:16,379 [web_systemmanagepage.py:12] 到国内机票测试桩配置页面 INFO 2022-05-06 17:27:16,379 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '系统管理')]") INFO 2022-05-06 17:27:16,906 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '系统管理')]") INFO 2022-05-06 17:27:16,906 [webpage.py:48] 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:27:17,432 [webpage.py:48] 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:27:17,996 [webpage.py:97] js注入方式点击元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:27:17,996 [webpage.py:58] 查找元素:('xpath', '//flight-stub-config//nz-select') INFO 2022-05-06 17:27:18,072 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:18,626 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:18,669 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:19,185 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:19,230 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:19,747 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:19,789 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:20,304 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:20,344 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:20,868 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:20,909 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:21,430 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:21,470 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:21,986 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:22,026 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:22,542 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:22,582 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:23,109 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:23,149 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:23,661 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:27:23,662 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:27:24,181 [web_systemmanagepage.py:85] 提交配置 INFO 2022-05-06 17:27:24,181 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:27:24,715 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:27:25,046 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:27:25,046 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:27:25,046 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:27:25,305 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:27:25,306 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:27:25,306 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:27:25,379 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:27:25,379 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:27:25,379 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:27:25,900 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:27:25,900 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:27:25,901 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:27:25,932 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:27:25,932 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:27:25,932 [web_authorizationsettingpage.py:15] 首页进入事前授权设置页面 INFO 2022-05-06 17:27:25,932 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO 2022-05-06 17:27:26,462 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO 2022-05-06 17:27:26,462 [webpage.py:48] 查找元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO 2022-05-06 17:27:27,005 [webpage.py:97] js注入方式点击元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO 2022-05-06 17:27:27,005 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO 2022-05-06 17:27:27,539 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO 2022-05-06 17:27:28,546 [web_authorizationsettingpage.py:23] 点击设置授权规则按钮 INFO 2022-05-06 17:27:28,546 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'设置授权规则')]/..") ------------------------------ Captured log setup ------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-tehang-system.teyixing.com/login INFO  logger:web_adminloginpage.py:13 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO  logger:webpage.py:78 输入文本:15950582102 INFO  logger:web_adminloginpage.py:18 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_adminloginpage.py:23 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:web_adminloginpage.py:28 获取标签栏文字 INFO  logger:webpage.py:48 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO  logger:webpage.py:89 获取文本:呼叫接入 INFO  logger:adminlogin.py:27 后台账号:15950582102登录成功 INFO  logger:web_systemmanagepage.py:90 将国内机票测试桩全配置为返回成功结果 INFO  logger:web_systemmanagepage.py:12 到国内机票测试桩配置页面 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '系统管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '系统管理')]") INFO  logger:webpage.py:48 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:48 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:58 查找元素:('xpath', '//flight-stub-config//nz-select') INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:web_systemmanagepage.py:85 提交配置 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_authorizationsettingpage.py:15 首页进入事前授权设置页面 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO  logger:webpage.py:48 查找元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO  logger:web_authorizationsettingpage.py:23 点击设置授权规则按钮 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'设置授权规则')]/..")
Rerun WEB-国内机票--预订往返程机票 TestCase/01_web/test_03_web_flight.py::TestFlight::test_011 37.51
screenshot
self = <test_03_web_flight.TestFlight object at 0x10e91acc0>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>

@pytest.mark.dependency(name="round_book")
def test_011(self, drivers):
"""WEB-国内机票--预订往返程机票"""
global ORDER_ID
CustomerLogin(drivers).customer_login()
book = BookFlightPage(drivers)
> assert "支付完成" in book.book_round_trip(departure_city="深圳", arrive_city="北京")

TestCase/01_web/test_03_web_flight.py:203:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
PageObject/WebObject/web_bookflightpage.py:259: in book_round_trip
self.click_book() # 去程
PageObject/WebObject/web_bookflightpage.py:154: in click_book
self.js_click(book["预订"])
page/webpage.py:94: in js_click
element = self.find_element(locator)
page/webpage.py:51: in find_element
EC.presence_of_element_located(args)), locator)
page/webpage.py:44: in element_locator
return func(cm.LOCATE_MODE[name], value)
page/webpage.py:51: in <lambda>
EC.presence_of_element_located(args)), locator)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.support.wait.WebDriverWait (session="46b458b22cd2b8955299e19ac233f453")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x10fafdc50>, message = ''

def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None

end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:

../../venv/lib/python3.7/site-packages/selenium/webdriver/support/wait.py:80: TimeoutException
----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:28:55,138 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:28:55,139 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:28:55,139 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:28:55,409 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:28:55,410 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:28:55,410 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:28:55,542 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:28:55,543 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:28:55,543 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:28:56,075 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:28:56,075 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:28:56,076 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:28:56,156 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:28:56,156 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:28:56,156 [web_bookflightpage.py:252] 预订往返机票 INFO 2022-05-06 17:28:56,156 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:28:56,416 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:28:57,179 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:28:58,180 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO 2022-05-06 17:28:58,718 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO 2022-05-06 17:28:58,718 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:28:58,719 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:28:58,719 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:28:58,731 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:28:58,844 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:28:58,844 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:28:59,395 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:28:59,395 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:28:59,396 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:28:59,396 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:28:59,402 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:28:59,483 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:28:59,483 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:29:00,001 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:29:00,001 [web_bookflightpage.py:102] 选中往返时间 INFO 2022-05-06 17:29:00,001 [web_bookflightpage.py:123] 生成随机日期 INFO 2022-05-06 17:29:00,002 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:29:00,002 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:29:00,002 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:29:00,080 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年5月24日']") INFO 2022-05-06 17:29:00,612 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年5月24日']") INFO 2022-05-06 17:29:00,678 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年5月26日']") INFO 2022-05-06 17:29:01,212 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年5月26日']") INFO 2022-05-06 17:29:01,213 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:29:01,213 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:29:01,739 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:29:01,739 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:29:01,739 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:252 预订往返机票 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'往返')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:102 选中往返时间 INFO  logger:web_bookflightpage.py:123 生成随机日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年5月24日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年5月24日']") INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年5月26日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年5月26日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')
Rerun WEB-国内机票--预订多人单程机票 TestCase/01_web/test_03_web_flight.py::TestFlight::test_016 37.93
screenshot
self = <test_03_web_flight.TestFlight object at 0x10fa03f28>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>

@pytest.mark.dependency(name="persons")
def test_016(self, drivers):
"""WEB-国内机票--预订多人单程机票"""
> assert self.book_flight(drivers,check=False), "预订机票失败"

TestCase/01_web/test_03_web_flight.py:257:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
TestCase/01_web/test_03_web_flight.py:43: in book_flight
assert "支付完成" in book.book_one_way(departure_city, arrive_city, check)
PageObject/WebObject/web_bookflightpage.py:247: in book_one_way
self.place_order(departure_city, arrive_city, one_person)
PageObject/WebObject/web_bookflightpage.py:237: in place_order
self.click_book()
PageObject/WebObject/web_bookflightpage.py:154: in click_book
self.js_click(book["预订"])
page/webpage.py:94: in js_click
element = self.find_element(locator)
page/webpage.py:51: in find_element
EC.presence_of_element_located(args)), locator)
page/webpage.py:44: in element_locator
return func(cm.LOCATE_MODE[name], value)
page/webpage.py:51: in <lambda>
EC.presence_of_element_located(args)), locator)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.support.wait.WebDriverWait (session="46b458b22cd2b8955299e19ac233f453")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x10fac4b00>, message = ''

def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None

end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:

../../venv/lib/python3.7/site-packages/selenium/webdriver/support/wait.py:80: TimeoutException
----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:30:12,271 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:30:12,272 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:30:12,272 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:30:12,564 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:30:12,564 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:30:12,564 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:30:12,697 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:30:12,698 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:30:12,698 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:30:13,233 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:30:13,233 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:30:13,233 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:30:13,275 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:30:13,275 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:30:13,276 [web_bookflightpage.py:246] 预订单程机票 INFO 2022-05-06 17:30:13,276 [web_bookflightpage.py:230] 生成待支付订单 INFO 2022-05-06 17:30:13,276 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:30:13,559 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:30:14,333 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:30:15,339 [web_bookflightpage.py:24] 点击单程 INFO 2022-05-06 17:30:15,339 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:30:15,871 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:30:15,871 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:30:15,871 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:30:15,871 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:30:15,884 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:30:15,990 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:30:15,991 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:16,565 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:16,565 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:30:16,566 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:30:16,566 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:30:16,574 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:30:16,652 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:30:16,653 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:17,169 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:30:17,169 [web_bookflightpage.py:96] 选中日期 INFO 2022-05-06 17:30:17,170 [web_bookflightpage.py:81] 点击日期 INFO 2022-05-06 17:30:17,170 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:30:17,248 [web_bookflightpage.py:86] 点击选中日期 INFO 2022-05-06 17:30:17,249 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:30:17,249 [web_bookflightpage.py:89] 日期:2022年5月16日 INFO 2022-05-06 17:30:17,249 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年5月16日']") INFO 2022-05-06 17:30:17,781 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年5月16日']") INFO 2022-05-06 17:30:18,786 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:30:18,787 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:30:19,313 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:30:19,314 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:30:19,314 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:246 预订单程机票 INFO  logger:web_bookflightpage.py:230 生成待支付订单 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:web_bookflightpage.py:24 点击单程 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:96 选中日期 INFO  logger:web_bookflightpage.py:81 点击日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:web_bookflightpage.py:86 点击选中日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:89 日期:2022年5月16日 INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年5月16日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年5月16日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')
Rerun WEB-授权--国内机票预订 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_003 37.88
screenshot
self = <test_04_web_flight_authorization.TestAuthorization object at 0x10e872eb8>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>, flight_stub = None

@pytest.mark.dependency(name="book_flight")
def test_003(self, drivers, flight_stub):
"""WEB-授权--国内机票预订"""
> assert self.book_flight(drivers)

TestCase/01_web/test_04_web_flight_authorization.py:144:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
TestCase/01_web/test_04_web_flight_authorization.py:31: in book_flight
assert "支付完成" in book.book_one_way(departure_city, arrive_city)
PageObject/WebObject/web_bookflightpage.py:247: in book_one_way
self.place_order(departure_city, arrive_city, one_person)
PageObject/WebObject/web_bookflightpage.py:237: in place_order
self.click_book()
PageObject/WebObject/web_bookflightpage.py:154: in click_book
self.js_click(book["预订"])
page/webpage.py:94: in js_click
element = self.find_element(locator)
page/webpage.py:51: in find_element
EC.presence_of_element_located(args)), locator)
page/webpage.py:44: in element_locator
return func(cm.LOCATE_MODE[name], value)
page/webpage.py:51: in <lambda>
EC.presence_of_element_located(args)), locator)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.support.wait.WebDriverWait (session="46b458b22cd2b8955299e19ac233f453")>
method = <selenium.webdriver.support.expected_conditions.presence_of_element_located object at 0x10e90dd68>, message = ''

def until(self, method, message=''):
"""Calls the method provided with the driver as an argument until the \
return value is not False."""
screen = None
stacktrace = None

end_time = time.time() + self._timeout
while True:
try:
value = method(self._driver)
if value:
return value
except self._ignored_exceptions as exc:
screen = getattr(exc, 'screen', None)
stacktrace = getattr(exc, 'stacktrace', None)
time.sleep(self._poll)
if time.time() > end_time:
break
> raise TimeoutException(message, screen, stacktrace)
E selenium.common.exceptions.TimeoutException: Message:

../../venv/lib/python3.7/site-packages/selenium/webdriver/support/wait.py:80: TimeoutException
---------------------------- Captured stderr setup -----------------------------
INFO 2022-05-06 17:31:43,144 [webpage.py:36] 打开网页:https://staging-tehang-system.teyixing.com/login INFO 2022-05-06 17:31:43,144 [web_adminloginpage.py:13] 输入账号 INFO 2022-05-06 17:31:43,144 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO 2022-05-06 17:31:43,382 [webpage.py:78] 输入文本:15950582102 INFO 2022-05-06 17:31:43,383 [web_adminloginpage.py:18] 输入密码 INFO 2022-05-06 17:31:43,383 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:31:43,495 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:31:43,496 [web_adminloginpage.py:23] 点击登录 INFO 2022-05-06 17:31:43,496 [webpage.py:48] 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:31:44,035 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO 2022-05-06 17:31:44,035 [web_adminloginpage.py:28] 获取标签栏文字 INFO 2022-05-06 17:31:44,035 [webpage.py:48] 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO 2022-05-06 17:31:44,060 [webpage.py:89] 获取文本:呼叫接入 INFO 2022-05-06 17:31:44,060 [adminlogin.py:27] 后台账号:15950582102登录成功 INFO 2022-05-06 17:31:44,060 [web_systemmanagepage.py:90] 将国内机票测试桩全配置为返回成功结果 INFO 2022-05-06 17:31:44,060 [web_systemmanagepage.py:12] 到国内机票测试桩配置页面 INFO 2022-05-06 17:31:44,060 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '系统管理')]") INFO 2022-05-06 17:31:44,579 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '系统管理')]") INFO 2022-05-06 17:31:44,580 [webpage.py:48] 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:31:45,100 [webpage.py:48] 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:31:45,669 [webpage.py:97] js注入方式点击元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO 2022-05-06 17:31:45,670 [webpage.py:58] 查找元素:('xpath', '//flight-stub-config//nz-select') INFO 2022-05-06 17:31:45,731 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:46,254 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:46,300 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:46,818 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:46,862 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:47,376 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:47,418 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:47,933 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:47,974 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:48,491 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:48,534 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:49,052 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:49,091 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:49,605 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:49,646 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:50,165 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:50,209 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:50,724 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:50,776 [webpage.py:48] 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:51,288 [webpage.py:97] js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO 2022-05-06 17:31:51,288 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:31:51,811 [web_systemmanagepage.py:85] 提交配置 INFO 2022-05-06 17:31:51,812 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO 2022-05-06 17:31:52,335 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(), '提交')]/..") ------------------------------ Captured log setup ------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-tehang-system.teyixing.com/login INFO  logger:web_adminloginpage.py:13 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号或邮箱']") INFO  logger:webpage.py:78 输入文本:15950582102 INFO  logger:web_adminloginpage.py:18 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_adminloginpage.py:23 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@class='width-100 ant-btn ant-btn-primary ant-btn-lg']") INFO  logger:web_adminloginpage.py:28 获取标签栏文字 INFO  logger:webpage.py:48 查找元素:('xpath', '//layout-header//li[1]/a[1]') INFO  logger:webpage.py:89 获取文本:呼叫接入 INFO  logger:adminlogin.py:27 后台账号:15950582102登录成功 INFO  logger:web_systemmanagepage.py:90 将国内机票测试桩全配置为返回成功结果 INFO  logger:web_systemmanagepage.py:12 到国内机票测试桩配置页面 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '系统管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '系统管理')]") INFO  logger:webpage.py:48 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:48 查找元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[@href='/system-manage/flight-stub']") INFO  logger:webpage.py:58 查找元素:('xpath', '//flight-stub-config//nz-select') INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//div[contains(text(),'返回成功结果')]/..") INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:web_systemmanagepage.py:85 提交配置 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(), '提交')]/..") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(), '提交')]/..")----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:31:52,672 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:31:52,672 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:31:52,672 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:31:52,917 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:31:52,917 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:31:52,917 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:31:53,030 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:31:53,030 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:31:53,031 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:31:53,564 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:31:53,564 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:31:53,565 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:31:53,629 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:31:53,630 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:31:53,630 [web_bookflightpage.py:246] 预订单程机票 INFO 2022-05-06 17:31:53,630 [web_bookflightpage.py:230] 生成待支付订单 INFO 2022-05-06 17:31:53,630 [web_bookflightpage.py:17] 点击机票产品 INFO 2022-05-06 17:31:53,928 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:31:54,688 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO 2022-05-06 17:31:55,694 [web_bookflightpage.py:24] 点击单程 INFO 2022-05-06 17:31:55,694 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:31:56,229 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO 2022-05-06 17:31:56,229 [web_bookflightpage.py:57] 输入并选中出发城市 INFO 2022-05-06 17:31:56,229 [web_bookflightpage.py:44] 输入出发城市 INFO 2022-05-06 17:31:56,229 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:31:56,242 [web_bookflightpage.py:46] 输入内容:深圳 INFO 2022-05-06 17:31:56,364 [web_bookflightpage.py:52] 选中出发城市 INFO 2022-05-06 17:31:56,364 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:31:56,912 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:31:56,912 [web_bookflightpage.py:75] 输入并选中到达城市 INFO 2022-05-06 17:31:56,912 [web_bookflightpage.py:63] 输入到达城市 INFO 2022-05-06 17:31:56,912 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO 2022-05-06 17:31:56,920 [web_bookflightpage.py:65] 输入内容:北京 INFO 2022-05-06 17:31:56,999 [web_bookflightpage.py:71] 选中到达城市 INFO 2022-05-06 17:31:56,999 [webpage.py:48] 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:31:57,520 [webpage.py:97] js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO 2022-05-06 17:31:57,520 [web_bookflightpage.py:96] 选中日期 INFO 2022-05-06 17:31:57,521 [web_bookflightpage.py:81] 点击日期 INFO 2022-05-06 17:31:57,521 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO 2022-05-06 17:31:57,600 [web_bookflightpage.py:86] 点击选中日期 INFO 2022-05-06 17:31:57,600 [web_bookflightpage.py:133] 获取日期 INFO 2022-05-06 17:31:57,600 [web_bookflightpage.py:89] 日期:2022年5月25日 INFO 2022-05-06 17:31:57,601 [webpage.py:48] 查找元素:('xpath', "//td[@title='2022年5月25日']") INFO 2022-05-06 17:31:58,134 [webpage.py:97] js注入方式点击元素:('xpath', "//td[@title='2022年5月25日']") INFO 2022-05-06 17:31:59,139 [web_bookflightpage.py:148] 点击查询 INFO 2022-05-06 17:31:59,139 [webpage.py:48] 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:31:59,665 [webpage.py:97] js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO 2022-05-06 17:31:59,665 [web_bookflightpage.py:153] 点击预订 INFO 2022-05-06 17:31:59,665 [webpage.py:48] 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]') ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_bookflightpage.py:246 预订单程机票 INFO  logger:web_bookflightpage.py:230 生成待支付订单 INFO  logger:web_bookflightpage.py:17 点击机票产品 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(),'国内机票')]") INFO  logger:web_bookflightpage.py:24 点击单程 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(),'单程')]/preceding-sibling::span[1]") INFO  logger:web_bookflightpage.py:57 输入并选中出发城市 INFO  logger:web_bookflightpage.py:44 输入出发城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:46 输入内容:深圳 INFO  logger:web_bookflightpage.py:52 选中出发城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:75 输入并选中到达城市 INFO  logger:web_bookflightpage.py:63 输入到达城市 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='支持中文/拼音检索 方向键选择']") INFO  logger:web_bookflightpage.py:65 输入内容:北京 INFO  logger:web_bookflightpage.py:71 选中到达城市 INFO  logger:webpage.py:48 查找元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//nz-list[1]/nz-spin[1]/div[1]/div[1]/nz-list-item[1]') INFO  logger:web_bookflightpage.py:96 选中日期 INFO  logger:web_bookflightpage.py:81 点击日期 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']") INFO  logger:web_bookflightpage.py:86 点击选中日期 INFO  logger:web_bookflightpage.py:133 获取日期 INFO  logger:web_bookflightpage.py:89 日期:2022年5月25日 INFO  logger:webpage.py:48 查找元素:('xpath', "//td[@title='2022年5月25日']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//td[@title='2022年5月25日']") INFO  logger:web_bookflightpage.py:148 点击查询 INFO  logger:webpage.py:48 查找元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//search-flight/div[1]/div[1]/nz-card[1]/div[2]/div[1]/button[1]') INFO  logger:web_bookflightpage.py:153 点击预订 INFO  logger:webpage.py:48 查找元素:('xpath', '//flights-list//flight-item[1]//flight-bunks-list[1]/flight-bunk-item[3]/nz-row[1]/nz-col[9]/button[1]')
Rerun WEB-关闭授权流程 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_023 4.81
screenshot
self = <test_04_web_flight_authorization.TestAuthorization object at 0x10fae57f0>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>

def test_023(self, drivers):
"""WEB-关闭授权流程"""
CustomerLogin(drivers).customer_login()
setting = AuthorizationSettingPage(drivers)
setting.to_authorization_setting()
> setting.set_authorization_rule()

TestCase/01_web/test_04_web_flight_authorization.py:353:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
PageObject/WebObject/web_authorizationsettingpage.py:24: in set_authorization_rule
self.is_click(authorizationsetting["设置授权规则"])
page/webpage.py:82: in is_click
self.find_element(locator).click()
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py:80: in click
self._execute(Command.CLICK_ELEMENT)
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py:633: in _execute
return self._parent.execute(command, params)
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x10e78e240>
response = {'status': 400, 'value': '{"value":{"error":"element click intercepted","message":"element click intercepted: Element ...fff6d968109 _pthread_start + 148\\n24 libsystem_pthread.dylib 0x00007fff6d963b8b thread_start + 15\\n"}}'}

def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.

:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.

:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
if len(value.keys()) == 1:
value = value['value']
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
message = message.get('message')
else:
message = value.get('message', None)
except ValueError:
pass

exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
exception_class = ElementNotInteractableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = InvalidCookieDomainException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = UnableToSetCookieException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
elif status in ErrorCode.JAVASCRIPT_ERROR:
exception_class = JavascriptException
elif status in ErrorCode.SESSION_NOT_CREATED:
exception_class = SessionNotCreatedException
elif status in ErrorCode.INVALID_ARGUMENT:
exception_class = InvalidArgumentException
elif status in ErrorCode.NO_SUCH_COOKIE:
exception_class = NoSuchCookieException
elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
exception_class = ScreenshotException
elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
exception_class = ElementClickInterceptedException
elif status in ErrorCode.INSECURE_CERTIFICATE:
exception_class = InsecureCertificateException
elif status in ErrorCode.INVALID_COORDINATES:
exception_class = InvalidCoordinatesException
elif status in ErrorCode.INVALID_SESSION_ID:
exception_class = InvalidSessionIdException
elif status in ErrorCode.UNKNOWN_METHOD:
exception_class = UnknownMethodException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']

screen = None
if 'screen' in value:
screen = value['screen']

stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException:
alert_text = None
if 'data' in value:
alert_text = value['data'].get('text')
elif 'alert' in value:
alert_text = value['alert'].get('text')
raise exception_class(message, screen, stacktrace, alert_text)
> raise exception_class(message, screen, stacktrace)
E selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <button _ngcontent-epu-c407="" nz-button="" nztype="primary" type="button" class="ant-btn ant-btn-primary">...</button> is not clickable at point (447, 332). Other element would receive the click: <div class="cs-loader">...</div>
E (Session info: chrome=101.0.4951.54)

../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py:242: ElementClickInterceptedException
----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:32:59,328 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:32:59,328 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:32:59,328 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:32:59,494 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:32:59,494 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:32:59,494 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:32:59,572 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:32:59,573 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:32:59,573 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:33:00,094 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:33:00,095 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:33:00,095 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:33:00,127 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:33:00,127 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:33:00,127 [web_authorizationsettingpage.py:15] 首页进入事前授权设置页面 INFO 2022-05-06 17:33:00,127 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO 2022-05-06 17:33:00,666 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO 2022-05-06 17:33:00,666 [webpage.py:48] 查找元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO 2022-05-06 17:33:01,209 [webpage.py:97] js注入方式点击元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO 2022-05-06 17:33:01,214 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO 2022-05-06 17:33:01,747 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO 2022-05-06 17:33:02,757 [web_authorizationsettingpage.py:23] 点击设置授权规则按钮 INFO 2022-05-06 17:33:02,758 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(),'设置授权规则')]/..") ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_authorizationsettingpage.py:15 首页进入事前授权设置页面 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '商旅管理')]") INFO  logger:webpage.py:48 查找元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', '//sidebar/ul[1]/li[2]/div[1]') INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '事中授权设置')]") INFO  logger:web_authorizationsettingpage.py:23 点击设置授权规则按钮 INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(),'设置授权规则')]/..")
Rerun WEB-国际酒店--预订 TestCase/01_web/test_08_web_ihotel.py::TestIntHotel::test_001 4.08
screenshot
self = <test_08_web_ihotel.TestIntHotel object at 0x10e99eb70>, drivers = <selenium.webdriver.chrome.webdriver.WebDriver (session="46b458b22cd2b8955299e19ac233f453")>

@pytest.mark.dependency(name='book')
def test_001(self, drivers):
"""WEB-国际酒店--预订"""
> assert self.book_int_hotel(drivers)

TestCase/01_web/test_08_web_ihotel.py:61:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
TestCase/01_web/test_08_web_ihotel.py:18: in book_int_hotel
assert int_hotel.book_int_hotel(), "预订酒店失败"
PageObject/WebObject/web_ihotelpage.py:149: in book_int_hotel
if not self.build_int_hotel_order():
PageObject/WebObject/web_ihotelpage.py:137: in build_int_hotel_order
self.choose_date()
PageObject/WebObject/web_ihotelpage.py:28: in choose_date
self.check_in_date(locator1, date_result[1])
PageObject/WebObject/web_ihotelpage.py:34: in check_in_date
eles[0].click()
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py:80: in click
self._execute(Command.CLICK_ELEMENT)
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py:633: in _execute
return self._parent.execute(command, params)
../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py:321: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x10e78e240>
response = {'status': 400, 'value': '{"value":{"error":"element click intercepted","message":"element click intercepted: Element ...fff6d968109 _pthread_start + 148\\n24 libsystem_pthread.dylib 0x00007fff6d963b8b thread_start + 15\\n"}}'}

def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.

:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.

:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
if len(value.keys()) == 1:
value = value['value']
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
message = message.get('message')
else:
message = value.get('message', None)
except ValueError:
pass

exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.ELEMENT_NOT_INTERACTABLE:
exception_class = ElementNotInteractableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = InvalidCookieDomainException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = UnableToSetCookieException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
elif status in ErrorCode.JAVASCRIPT_ERROR:
exception_class = JavascriptException
elif status in ErrorCode.SESSION_NOT_CREATED:
exception_class = SessionNotCreatedException
elif status in ErrorCode.INVALID_ARGUMENT:
exception_class = InvalidArgumentException
elif status in ErrorCode.NO_SUCH_COOKIE:
exception_class = NoSuchCookieException
elif status in ErrorCode.UNABLE_TO_CAPTURE_SCREEN:
exception_class = ScreenshotException
elif status in ErrorCode.ELEMENT_CLICK_INTERCEPTED:
exception_class = ElementClickInterceptedException
elif status in ErrorCode.INSECURE_CERTIFICATE:
exception_class = InsecureCertificateException
elif status in ErrorCode.INVALID_COORDINATES:
exception_class = InvalidCoordinatesException
elif status in ErrorCode.INVALID_SESSION_ID:
exception_class = InvalidSessionIdException
elif status in ErrorCode.UNKNOWN_METHOD:
exception_class = UnknownMethodException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']

screen = None
if 'screen' in value:
screen = value['screen']

stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException:
alert_text = None
if 'data' in value:
alert_text = value['data'].get('text')
elif 'alert' in value:
alert_text = value['alert'].get('text')
raise exception_class(message, screen, stacktrace, alert_text)
> raise exception_class(message, screen, stacktrace)
E selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <input class="ng-tns-c76-17 ng-untouched ng-pristine ng-valid" placeholder="请选择日期" size="12"> is not clickable at point (750, 396). Other element would receive the click: <div class="cs-loader">...</div>
E (Session info: chrome=101.0.4951.54)

../../venv/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py:242: ElementClickInterceptedException
----------------------------- Captured stderr call -----------------------------
INFO 2022-05-06 17:43:22,238 [webpage.py:36] 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO 2022-05-06 17:43:22,238 [web_customerloginpage.py:23] 输入账号 INFO 2022-05-06 17:43:22,238 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO 2022-05-06 17:43:22,586 [webpage.py:78] 输入文本:12345671234 INFO 2022-05-06 17:43:22,586 [web_customerloginpage.py:38] 输入密码 INFO 2022-05-06 17:43:22,586 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO 2022-05-06 17:43:22,719 [webpage.py:78] 输入文本:a1111111 INFO 2022-05-06 17:43:22,719 [web_customerloginpage.py:43] 点击登录 INFO 2022-05-06 17:43:22,720 [webpage.py:48] 查找元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:43:23,246 [webpage.py:97] js注入方式点击元素:('xpath', "//button[@type='submit']") INFO 2022-05-06 17:43:23,246 [web_customerloginpage.py:58] 获取问候语 INFO 2022-05-06 17:43:23,246 [webpage.py:48] 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO 2022-05-06 17:43:23,276 [webpage.py:89] 获取文本:你好!自动化一 INFO 2022-05-06 17:43:23,276 [customerlogin.py:27] 前台账号:12345671234登录成功 INFO 2022-05-06 17:43:23,276 [web_ihotelpage.py:148] 预订国际酒店 INFO 2022-05-06 17:43:23,276 [web_ihotelpage.py:134] 前台预订生成国际酒店订单 INFO 2022-05-06 17:43:23,276 [web_ihotelpage.py:15] 点击国际酒店 INFO 2022-05-06 17:43:23,277 [webpage.py:48] 查找元素:('xpath', "//a[contains(text(), '国际∙港澳台酒店')]") INFO 2022-05-06 17:43:23,802 [webpage.py:97] js注入方式点击元素:('xpath', "//a[contains(text(), '国际∙港澳台酒店')]") INFO 2022-05-06 17:43:23,803 [web_ihotelpage.py:19] 酒店城市选择 INFO 2022-05-06 17:43:23,803 [webpage.py:48] 查找元素:('xpath', "//input[@placeholder='支持中英文名检索']") INFO 2022-05-06 17:43:24,402 [webpage.py:97] js注入方式点击元素:('xpath', "//input[@placeholder='支持中英文名检索']") INFO 2022-05-06 17:43:24,402 [webpage.py:48] 查找元素:('xpath', "//span[contains(text(), '曼谷(Bangkok)')]") INFO 2022-05-06 17:43:24,933 [webpage.py:97] js注入方式点击元素:('xpath', "//span[contains(text(), '曼谷(Bangkok)')]") INFO 2022-05-06 17:43:24,933 [web_ihotelpage.py:24] 日期选择 INFO 2022-05-06 17:43:24,934 [web_ihotelpage.py:52] 生成随机日期 INFO 2022-05-06 17:43:24,934 [web_ihotelpage.py:62] 获取日期 INFO 2022-05-06 17:43:24,934 [web_ihotelpage.py:62] 获取日期 INFO 2022-05-06 17:43:24,934 [web_ihotelpage.py:32] 入住时间选择 INFO 2022-05-06 17:43:24,934 [webpage.py:58] 查找元素:('xpath', "//input[@placeholder='请选择日期']") ------------------------------ Captured log call -------------------------------
INFO  logger:webpage.py:36 打开网页:https://staging-web-te-yi-xing.teyixing.com/passport/login INFO  logger:web_customerloginpage.py:23 输入账号 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入手机号']") INFO  logger:webpage.py:78 输入文本:12345671234 INFO  logger:web_customerloginpage.py:38 输入密码 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='请输入密码']") INFO  logger:webpage.py:78 输入文本:a1111111 INFO  logger:web_customerloginpage.py:43 点击登录 INFO  logger:webpage.py:48 查找元素:('xpath', "//button[@type='submit']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//button[@type='submit']") INFO  logger:web_customerloginpage.py:58 获取问候语 INFO  logger:webpage.py:48 查找元素:('xpath', '//header-user/nz-col[1]/nz-row[1]/nz-col[1]/span[1]/span[1]') INFO  logger:webpage.py:89 获取文本:你好!自动化一 INFO  logger:customerlogin.py:27 前台账号:12345671234登录成功 INFO  logger:web_ihotelpage.py:148 预订国际酒店 INFO  logger:web_ihotelpage.py:134 前台预订生成国际酒店订单 INFO  logger:web_ihotelpage.py:15 点击国际酒店 INFO  logger:webpage.py:48 查找元素:('xpath', "//a[contains(text(), '国际∙港澳台酒店')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//a[contains(text(), '国际∙港澳台酒店')]") INFO  logger:web_ihotelpage.py:19 酒店城市选择 INFO  logger:webpage.py:48 查找元素:('xpath', "//input[@placeholder='支持中英文名检索']") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//input[@placeholder='支持中英文名检索']") INFO  logger:webpage.py:48 查找元素:('xpath', "//span[contains(text(), '曼谷(Bangkok)')]") INFO  logger:webpage.py:97 js注入方式点击元素:('xpath', "//span[contains(text(), '曼谷(Bangkok)')]") INFO  logger:web_ihotelpage.py:24 日期选择 INFO  logger:web_ihotelpage.py:52 生成随机日期 INFO  logger:web_ihotelpage.py:62 获取日期 INFO  logger:web_ihotelpage.py:62 获取日期 INFO  logger:web_ihotelpage.py:32 入住时间选择 INFO  logger:webpage.py:58 查找元素:('xpath', "//input[@placeholder='请选择日期']")
Skipped WEB-注册账号前台验证码登录后重置密码 TestCase/01_web/test_01_admin_register.py::TestRegister::test_003::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_003 depends on register')
Skipped WEB-注册账号前台账号密码登录 TestCase/01_web/test_01_admin_register.py::TestRegister::test_004::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_004 depends on set_password')
Skipped WEB-国内机票--出票 TestCase/01_web/test_03_web_flight.py::TestFlight::test_002::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_002 depends on book_flight')
Skipped WEB-国内机票--提交改签申请 TestCase/01_web/test_03_web_flight.py::TestFlight::test_003::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_003 depends on ticket_confirm')
Skipped WEB-国内机票--改签报价取消 TestCase/01_web/test_03_web_flight.py::TestFlight::test_004::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_004 depends on change_apply')
Skipped WEB-国内机票--完成改签报价任务-提交改签申请 TestCase/01_web/test_03_web_flight.py::TestFlight::test_005_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_005_01 depends on change_offer')
Skipped WEB-国内机票--完成改签报价任务-完成改签报价任务 TestCase/01_web/test_03_web_flight.py::TestFlight::test_005_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_005_02 depends on change_offer1')
Skipped WEB-国内机票改签单--改签确认取消 TestCase/01_web/test_03_web_flight.py::TestFlight::test_006::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_006 depends on change_offer2')
Skipped WEB-国内机票改签单--完成改签确认出票-提交改签申请 TestCase/01_web/test_03_web_flight.py::TestFlight::test_007_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_007_01 depends on change_offer2')
Skipped WEB-国内机票改签单--完成改签确认出票-完成改签报价任务 TestCase/01_web/test_03_web_flight.py::TestFlight::test_007_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_007_02 depends on change_confirm1')
Skipped WEB-国内机票改签单--完成改签确认出票-完成改签确认任务 TestCase/01_web/test_03_web_flight.py::TestFlight::test_007_03::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_007_03 depends on change_confirm2')
Skipped WEB-国内机票--提交退票申请 TestCase/01_web/test_03_web_flight.py::TestFlight::test_008::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_008 depends on change_confirm3')
Skipped WEB-国内机票--退票取消 TestCase/01_web/test_03_web_flight.py::TestFlight::test_009::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_009 depends on return_apply')
Skipped WEB-国内机票--退票确认-提交退票申请 TestCase/01_web/test_03_web_flight.py::TestFlight::test_010_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_010_01 depends on return_apply')
Skipped WEB-国内机票--退票确认-完成退票确认任务 TestCase/01_web/test_03_web_flight.py::TestFlight::test_010_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_010_02 depends on return_confirm1')
Skipped WEB-国内机票--返程机票出票 TestCase/01_web/test_03_web_flight.py::TestFlight::test_012::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_012 depends on round_book')
Skipped WEB-国内机票--去程退票-提交退票申请 TestCase/01_web/test_03_web_flight.py::TestFlight::test_013_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_013_01 depends on round_confirm')
Skipped WEB-国内机票--去程退票-完成退票任务 TestCase/01_web/test_03_web_flight.py::TestFlight::test_013_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_013_02 depends on go_return1')
Skipped WEB-国内机票--返程退票 TestCase/01_web/test_03_web_flight.py::TestFlight::test_014_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_014_01 depends on round_confirm')
Skipped WEB-国内机票--返程退票 TestCase/01_web/test_03_web_flight.py::TestFlight::test_014_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_014_02 depends on back_return1')
Skipped WEB-国内机票--往返一起退票-提交退票申请 TestCase/01_web/test_03_web_flight.py::TestFlight::test_015_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_015_01 depends on round_confirm')
Skipped WEB-国内机票--往返一起退票-完成退票任务 TestCase/01_web/test_03_web_flight.py::TestFlight::test_015_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_015_02 depends on round_return')
Skipped WEB-国内机票--多人订单--一人退票-提交退票申请 TestCase/01_web/test_03_web_flight.py::TestFlight::test_017_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_017_01 depends on persons')
Skipped WEB-国内机票--多人订单--一人退票-完成退票任务 TestCase/01_web/test_03_web_flight.py::TestFlight::test_017_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_017_02 depends on persons_return1')
Skipped WEB-国内机票--多人订单--多次多人退票-提交退票申请 TestCase/01_web/test_03_web_flight.py::TestFlight::test_018_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_018_01 depends on persons')
Skipped WEB-国内机票--多人订单--多次多人退票-完成退票任务 TestCase/01_web/test_03_web_flight.py::TestFlight::test_018_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_018_02 depends on persons_return2')
Skipped WEB--国内机票--未支付订单取消 TestCase/01_web/test_03_web_flight.py::TestFlight::test_019::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_019 depends on book_flight')
Skipped WEB-国内机票预订--一级授权通过 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_004::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_004 depends on book_flight')
Skipped WEB-授权--国内机票出票 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_005::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_005 depends on book_flight')
Skipped WEB-授权--国内机票提交改签申请 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_006::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_006 depends on ticket_confirm')
Skipped WEB-授权--国内机票完成改签报价任务 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_007::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_007 depends on change_apply')
Skipped WEB-国内机票改签--一级授权拒绝 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_008::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_008 depends on change_offer')
Skipped WEB-国内机票改签单--一级授权通过-提交改签申请 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_009_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_009_01 depends on change_offer')
Skipped WEB-国内机票改签单--一级授权通过-完成改签报价任务 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_009_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_009_02 depends on change_authorization1')
Skipped WEB-国内机票改签单--一级授权通过-一级授权通过 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_009_03::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_009_03 depends on change_authorization2')
Skipped WEB-国内机票改签单--完成改签确认出票 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_010::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_010 depends on change_authorization')
Skipped WEB-授权--国内机票退票申请提交 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_011::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_011 depends on change_confirm')
Skipped WEB-国内机票退票--一级授权拒绝 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_012::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_012 depends on return_apply')
Skipped WEB-国内机票退票单--一级授权通过-提交退票申请 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_013_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_013_01 depends on return_apply')
Skipped WEB-国内机票退票单--一级授权通过-一级授权通过 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_013_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_013_02 depends on return_authorization1')
Skipped WEB-授权--国内机票退票确认 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_014::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_014 depends on return_authorization')
Skipped WEB-国内机票预订--一级授权拒绝 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_015::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_015 depends on book_flight')
Skipped WEB-国内机票预订--二级授权通过 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_017::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_017 depends on book_flight')
Skipped WEB-国内机票改签--二级授权拒绝-提交改签申请 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_018_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_018_01 depends on change_offer')
Skipped WEB-国内机票改签--二级授权拒绝-完成改签报价任务 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_018_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_018_02 depends on two_level_change_refuse1')
Skipped WEB-国内机票改签--二级授权拒绝-审批拒绝 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_018_03::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_018_03 depends on two_level_change_refuse2')
Skipped WEB-国内机票改签--二级授权通过-提交改签申请 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_019_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_019_01 depends on two_level_change_refuse')
Skipped WEB-国内机票改签--二级授权通过-完成改签报价任务 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_019_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_019_02 depends on two_level_change1')
Skipped WEB-国内机票改签--二级授权通过-授权通过 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_019_03::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_019_03 depends on two_level_change2')
Skipped WEB-国内机票退票--二级授权拒绝-提交退票申请 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_020_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_020_01 depends on return_apply')
Skipped WEB-国内机票退票--二级授权拒绝-授权拒绝 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_020_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_020_02 depends on two_level_return_refuse1')
Skipped WEB-国内机票退票--二级授权通过-提交退票申请 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_021_01::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_021_01 depends on two_level_return_refuse')
Skipped WEB-国内机票退票--二级授权通过-授权通过 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_021_02::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_021_02 depends on two_level_return_pass')
Skipped WEB-国内机票预订--二级授权拒绝 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_022::setup 0.00
('/Users/mac/PycharmProjects/test-uitest/venv/lib/python3.7/site-packages/pytest_dependency.py', 103, 'Skipped: test_022 depends on book_flight')
Passed WEB-测试账号验证码登录 TestCase/01_web/test_01_admin_register.py::TestRegister::test_001 36.71
通过的用例未捕获日志输出.
Passed WEB-设置只需一级审批 TestCase/01_web/test_02_web_travel_approve.py::TestTravelApprove::test_001 5.89
通过的用例未捕获日志输出.
Passed WEB-提交差旅计划 TestCase/01_web/test_02_web_travel_approve.py::TestTravelApprove::test_002 7.00
通过的用例未捕获日志输出.
Passed WEB-一级审批通过 TestCase/01_web/test_02_web_travel_approve.py::TestTravelApprove::test_003 9.89
通过的用例未捕获日志输出.
Passed WEB-一级审批拒绝 TestCase/01_web/test_02_web_travel_approve.py::TestTravelApprove::test_004 13.55
通过的用例未捕获日志输出.
Passed WEB-设置二级审批人 TestCase/01_web/test_02_web_travel_approve.py::TestTravelApprove::test_005 6.47
通过的用例未捕获日志输出.
Passed WEB-二级审批通过 TestCase/01_web/test_02_web_travel_approve.py::TestTravelApprove::test_006 19.63
通过的用例未捕获日志输出.
Passed WEB-二级审批拒绝 TestCase/01_web/test_02_web_travel_approve.py::TestTravelApprove::test_007 36.10
通过的用例未捕获日志输出.
Passed WEB-开启授权流程 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_001 6.14
通过的用例未捕获日志输出.
Passed WEB-设置只需一级授权 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_002 7.03
通过的用例未捕获日志输出.
Passed WEB-设置二级授权人 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_016 8.07
通过的用例未捕获日志输出.
Passed WEB-关闭授权流程 TestCase/01_web/test_04_web_flight_authorization.py::TestAuthorization::test_023 6.45
通过的用例未捕获日志输出.
Passed WEB-国内酒店--预订 TestCase/01_web/test_05_web_domestic_hotel.py::TestDomesticHotel::test_001 19.14
通过的用例未捕获日志输出.
Passed WEB-国内酒店--完成订房 TestCase/01_web/test_05_web_domestic_hotel.py::TestDomesticHotel::test_002 6.31
通过的用例未捕获日志输出.
Passed WEB-国内酒店--全部退订-提交退订申请 TestCase/01_web/test_05_web_domestic_hotel.py::TestDomesticHotel::test_003_01 6.23
通过的用例未捕获日志输出.
Passed WEB-国内酒店--全部退订-完成退订任务 TestCase/01_web/test_05_web_domestic_hotel.py::TestDomesticHotel::test_003_02 23.45
通过的用例未捕获日志输出.
Passed WEB-国内酒店--部分退订-预定酒店 TestCase/01_web/test_05_web_domestic_hotel.py::TestDomesticHotel::test_004_01 31.50
通过的用例未捕获日志输出.
Passed WEB-国内酒店--部分退订-提交退订申请 TestCase/01_web/test_05_web_domestic_hotel.py::TestDomesticHotel::test_004_02 6.07
通过的用例未捕获日志输出.
Passed WEB-国内酒店--部分退订-完成退订任务 TestCase/01_web/test_05_web_domestic_hotel.py::TestDomesticHotel::test_004_03 7.87
通过的用例未捕获日志输出.
Passed WEB-国内酒店--订单取消 TestCase/01_web/test_05_web_domestic_hotel.py::TestDomesticHotel::test_005 25.68
通过的用例未捕获日志输出.
Passed WEB-预订火车票 TestCase/01_web/test_06_web_train.py::TestTrain::test_001 0.00
通过的用例未捕获日志输出.
Passed WEB-火车票改签 TestCase/01_web/test_06_web_train.py::TestTrain::test_002 0.00
通过的用例未捕获日志输出.
Passed WEB-火车票退票 TestCase/01_web/test_06_web_train.py::TestTrain::test_003 0.00
通过的用例未捕获日志输出.
Passed WEB-国际机票--前台预订 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_001 13.67
通过的用例未捕获日志输出.
Passed WEB-国际机票--提交出票申请 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_002 10.34
通过的用例未捕获日志输出.
Passed WEB-国际机票--完成出票确认任务 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_003 9.13
通过的用例未捕获日志输出.
Passed WEB-国际机票--提交改签申请 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_004 5.96
通过的用例未捕获日志输出.
Passed WEB-国际机票--完成改签申请取消任务 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_005 8.62
通过的用例未捕获日志输出.
Passed WEB-国际机票--完成改签申请-提交改签申请 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_006_01 5.81
通过的用例未捕获日志输出.
Passed WEB-国际机票--完成改签申请任务 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_006_02 11.11
通过的用例未捕获日志输出.
Passed WEB-国际机票--完成改签确认任务 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_007 13.19
通过的用例未捕获日志输出.
Passed WEB-国际机票--提交退票申请 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_008 4.25
通过的用例未捕获日志输出.
Passed WEB-国际机票--完成退票申请取消任务 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_009 8.53
通过的用例未捕获日志输出.
Passed WEB-国际机票--退票确认取消-提交退票申请 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_010_01 4.11
通过的用例未捕获日志输出.
Passed WEB-国际机票--退票确认取消-完成退票申请 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_010_02 10.24
通过的用例未捕获日志输出.
Passed WEB-国际机票--完成退票确认取消任务 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_011 7.09
通过的用例未捕获日志输出.
Passed WEB-国际机票--退票确认-提交退票申请 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_012_01 4.31
通过的用例未捕获日志输出.
Passed WEB-国际机票--退票确认-完成退票申请 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_012_02 10.29
通过的用例未捕获日志输出.
Passed WEB-国际机票--完成退票确认任务 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_012_03 6.87
通过的用例未捕获日志输出.
Passed WEB-国际机票--预订取消 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_013 14.91
通过的用例未捕获日志输出.
Passed WEB-国际机票--完成预订取消任务 TestCase/01_web/test_07_web_iflight.py::TestIntFlight::test_014 7.94
通过的用例未捕获日志输出.
Passed WEB-国际酒店--预订 TestCase/01_web/test_08_web_ihotel.py::TestIntHotel::test_001 16.54
通过的用例未捕获日志输出.
Passed WEB-国际酒店--完成订房 TestCase/01_web/test_08_web_ihotel.py::TestIntHotel::test_002 17.25
通过的用例未捕获日志输出.
Passed WEB-国际酒店--全部退订-提交退订申请 TestCase/01_web/test_08_web_ihotel.py::TestIntHotel::test_003_01 5.53
通过的用例未捕获日志输出.
Passed WEB-国际酒店--全部退订-完成退订任务 TestCase/01_web/test_08_web_ihotel.py::TestIntHotel::test_003_02 3.44
通过的用例未捕获日志输出.
Passed WEB-国际酒店--部分退订-预订酒店 TestCase/01_web/test_08_web_ihotel.py::TestIntHotel::test_004_01 30.87
通过的用例未捕获日志输出.
Passed WEB-国际酒店--部分退订-提交退订申请 TestCase/01_web/test_08_web_ihotel.py::TestIntHotel::test_004_02 5.86
通过的用例未捕获日志输出.
Passed WEB-国际酒店--部分退订-完成退订任务 TestCase/01_web/test_08_web_ihotel.py::TestIntHotel::test_004_03 5.13
通过的用例未捕获日志输出.
Passed WEB-国际酒店--取消订单 TestCase/01_web/test_08_web_ihotel.py::TestIntHotel::test_005 18.02
通过的用例未捕获日志输出.
Passed WEB-商旅管理--差旅政策页面校验 TestCase/01_web/test_09_web_management.py::TestManagement::test_01 2.94
通过的用例未捕获日志输出.
Passed WEB-商旅管理--预订设置页面校验 TestCase/01_web/test_09_web_management.py::TestManagement::test_02 3.33
通过的用例未捕获日志输出.
Passed WEB-商旅管理--新增差旅政策页面校验 TestCase/01_web/test_09_web_management.py::TestManagement::test_03 0.89
通过的用例未捕获日志输出.
Passed WEB-商旅管理--事前审批配置页面 TestCase/01_web/test_09_web_management.py::TestManagement::test_04 0.62
通过的用例未捕获日志输出.
Passed WEB-商旅管理--新增审批流程页面 TestCase/01_web/test_09_web_management.py::TestManagement::test_05 0.63
通过的用例未捕获日志输出.
Passed WEB-商旅管理--事中授权页面 TestCase/01_web/test_09_web_management.py::TestManagement::test_06 1.85
通过的用例未捕获日志输出.
Passed WEB-商旅管理--新增授权流程页面 TestCase/01_web/test_09_web_management.py::TestManagement::test_07 0.65
通过的用例未捕获日志输出.
Passed WEB-商旅管理--事后知会设置页面 TestCase/01_web/test_09_web_management.py::TestManagement::test_08 1.95
通过的用例未捕获日志输出.
Passed WEB-商旅管理--新增知会流程页面 TestCase/01_web/test_09_web_management.py::TestManagement::test_09 0.64
通过的用例未捕获日志输出.
Passed WEB-商旅管理--设置知会规则页面 TestCase/01_web/test_09_web_management.py::TestManagement::test_10 1.76
通过的用例未捕获日志输出.
Passed WEB-商旅管理--企业项目页面(包括新增和关联) TestCase/01_web/test_09_web_management.py::TestManagement::test_11 3.66
通过的用例未捕获日志输出.
Passed WEB-商旅管理--绿色通道页面 TestCase/01_web/test_09_web_management.py::TestManagement::test_12 1.67
通过的用例未捕获日志输出.
Passed WEB-商旅管理--城市等级页面 TestCase/01_web/test_09_web_management.py::TestManagement::test_13 0.68
通过的用例未捕获日志输出.
Passed WEB-商旅分析--综合查询 TestCase/01_web/test_10_web_travel_analysis.py::TestTravelAnalysis::test_01 5.93
通过的用例未捕获日志输出.
Passed WEB-商旅分析--报表分析 TestCase/01_web/test_10_web_travel_analysis.py::TestTravelAnalysis::test_02 4.47
通过的用例未捕获日志输出.